'DATE'不是公认的内置函数名称

时间:2014-01-07 13:47:10

标签: sql sql-server sql-server-2008 sql-server-2012 ssms

我希望找到当天的所有记录。我有一个DATE类型的字段日期。 我在sql server上收到错误

'DATE' is not a recognized built-in function name.

在这一行

(DATE(EnterDate) = CURDATE() )

5 个答案:

答案 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))