我希望找到当天的所有记录。我有一个DATE类型的字段日期。 我在sql server上收到错误
'DATE' is not a recognized built-in function name.
在这一行
(DATE(EnterDate) = CURDATE() )
答案 0 :(得分:13)
如错误所述,SQL Server 2008或2012中没有DATE
功能(您标记了两者,因此我不确定您要定位哪个)。但 可以转换为SQL Server 2008及更高版本中的date
类型:
WHERE EnterDate = CONVERT(date,GETDATE())
请注意,也没有CURDATE
功能,所以我已将其翻译为GETDATE()
答案 1 :(得分:3)
在where子句
中使用以下条件WHERE CAST(DateColumn AS DATE) = CAST(GETDATE() AS DATE)
^------------ Your Column Name with `Date` or 'DateTime' data type
CURDATE()
是一个mysql函数,在Sql-Server中我们有GETDATE()
函数来获取当前日期和时间。
答案 2 :(得分:1)
效率更高
WHERE EnterDate > DATEADD(dd, -1, DATEDIFF(dd, 0, GETDATE()))
感谢@D Stanley @marc_S和@Mihai
答案 3 :(得分:0)
最后,我完成了它 WHERE EnterDate>转换(DATETIME,转换(VARCHAR,DATEADD(DAY,0,GETDATE()),101))
答案 4 :(得分:0)
这不是确切的答案,而是如何从日期时间变量
修剪时间部分的示例CONVERT(VARCHAR(10),date_manufactured,10)= CONVERT(VARCHAR(10),@ startdate,10))