2014-07-14 164 views
2

我有一个SQL内置的SQL有2个参数,一个是年份,另一个是月份。TDateTimePicker delphi获取年份和月份

在delphi中,我在框架上添加了一个TDateTimePicker,以便让用户选择月份和年份。

如何从TDateTimePicker中检索Year/Day的值?

我试过DateTimePicker2.Date;但是这给了我一个日期格式 “XX/XX/XXXX”

我想要得到的实际年/月

int year ; 
year := DateTimePicker2.Date.Year; 

有什么办法可以做到这一点?

+2

使用['YearOf'](http://docwiki.embarcadero.com/Libraries/XE6/en/System.DateUtils.YearOf)和['MonthOf'](http: //docwiki.embarcadero.com/Libraries/XE6/en/System.DateUtils.MonthOf)函数。或者['DecodeDate'](http://docwiki.embarcadero.com/Libraries/XE6/en/SystemUtils.DecodeDate)立即获取它们。 – TLama

+1

谢谢,先生!我知道有这样做的功能,但我找不到它们。 – CiucaS

+0

你想让这个答案@TLama? –

回答

5

正如TLama说,你可以使用DecodeDate功能如下: -

Var 
    lDay, 
    lMonth, 
    lYear : Word; 
Begin 
    DecodeDate(DateTimePicker2.Date, lDay, lMonth, lYear); 
    MyStoredProc.Params[0].AsInteger := lDay; 
    MyStoredProc.Params[1].AsInteger := lMonth; 
    MyStoredProc.Execute; 
End; 
3

使用YearOf()MonthOf()功能DateUtils

您的代码将是:

year := YearOf(DateTimePicker1.Date); 
month := MonthOf(DateTimePicker1.Date); 

如果该值在DateTimePicker1.Date27/8/2015 那么值年份为2015年,月份为8.