关于日期的查询,SQL Server中(请在线朋友关注一下)。(100分)

  • 主题发起人 主题发起人 sundart
  • 开始时间 开始时间
S

sundart

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:
表OrderTable有一DateTime型字段dDate,通过以下方法赋值:
FieldByName('dDate').Value := Now;
发现:
比如当前日期为2001-10-23,该字段的值为:‘2001-10-23 00:00:00.000’
而有时候它会为:‘2001-10-23 08:00:00.000’(不知道为什么会显示时间?)
那么我要查询今天的数据时:
select * from OrderTable where dDate = '2001-10-23'
则只能显示‘2001-10-23 00:00:00.000’的数据。

请问如何才能完全显示合符条件的数据?
谢谢!
 
select * from OrderTable where CONVERT(VARCHAR(10),dDate,120) = '2001-10-23'
 
这样试试
FieldByName('dDate').AsDateTime:=Date;
 
赋制的时候

FieldByName('dDate').Value := formatdatetime('yyyy-mm-dd',Now);
 
where dDate between '2001-10-23' and '2000-10-24'
 
select * from OrderTable where convert(char(10),dDate,121) = '2001-10-23'
 
FieldByName('dDate').Value := formatdatetime('yyyy-mm-dd',Now);
 
关于用formatdatetime('yyyy-mm-dd',Now)这个函数是有许多问题的,
如果用户电脑上的日期格式是:yyyy/mm/dd那么可能出现问题。

 
用这种方法是最好的:FieldByName('dDate').Value := Int(Now);
 
多人接受答案了。
 
后退
顶部