经测试,SQL Server与Delphi的日期表示有以下不同
日期数值 SQL Server Delphi
----------------------------------------------------
-1 1899-12-31 1899-12-29
0 1900-01-01 1899-12-30
1 1900-01-02 1899-12-31
另外,TDeteTimePicker控件空日期表示为0,即1899-12-30。为正确参与计算,怎么统一SQL Server与Delphi的日期?
日期数值 SQL Server Delphi
----------------------------------------------------
-1 1899-12-31 1899-12-29
0 1900-01-01 1899-12-30
1 1900-01-02 1899-12-31
另外,TDeteTimePicker控件空日期表示为0,即1899-12-30。为正确参与计算,怎么统一SQL Server与Delphi的日期?
SQL 端也可以使用convert()函数进行格式化.
不知道有没人知道,在Delphi中是不是有一个环境设置或编译设置,使其0日期为‘1900-01-01’的?
Delphi:formatdatetime('yyyy-mm-dd',date)
用字符串比较
convert(char(10),date_field,120)
formatdatetime('yyyy-mm-dd',datavalue)
会不会与windows的日期时间设置有关系?
但我已经看到,TDateTimePicker控件就有关系,设置为shortdate格式的系统中,日期被显示为:
2004- 1- 2,“0”被空格代替了!@