"Дата" не является признанным встроенным именем функции

Я хочу найти все записи текущего дня. У меня есть поле Date типа DATE. Я получаю ошибку на sql server

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

в этой строке

(DATE(EnterDate) = CURDATE() )

5 ответов


как говорится в сообщении, отсутствует DATE функции в SQL Server 2008 или 2012 (Вы отметили оба, поэтому я не уверен, на что вы нацелены). Вы можете, однако, бросьте в date введите SQL Server 2008 и выше:

WHERE EnterDate = CONVERT(date,GETDATE())

обратите внимание, что нет CURDATE функция либо, поэтому я перевел это на GETDATE()


используйте следующее условие в вашем where cluase

WHERE CAST(DateColumn AS DATE) = CAST(GETDATE() AS DATE)
              ^------------ Your Column Name with `Date` or 'DateTime'  data type

CURDATE() является функцией mysql, в Sql-Server у нас есть GETDATE() функция для получения текущей даты и времени.


более эффективно

WHERE EnterDate > DATEADD(dd, -1, DATEDIFF(dd, 0, GETDATE()))

спасибо @D Stanley @marc_S и @Mihai


наконец - то я сделал это
Где EnterDate > конвертировать(дата-время,конвертировать(varchar,DATEADD (день,0,GETDATE ()), 101))


Это не точный ответ, но пример того, как обрезать часть времени от переменной времени даты

конвертировать(VARCHAR(10),date_manufactured,10) =конвертировать(VARCHAR (10),@startdate,10))