当日のすべての記録を見つけたいです。タイプDATEのフィールドDateがあります。 SQLサーバーでエラーが発生します
'DATE' is not a recognized built-in function name.
この行に
(DATE(EnterDate) = CURDATE() )
エラーが示すように、SQL Server2008または2012にはDATE
functionがありません(両方にタグを付けたため、どちらかわかりませんあなたがターゲットにしている)。ただし、SQL Server 2008以降ではcanはdate
型にキャストできます。
_WHERE EnterDate = CONVERT(date,GETDATE())
_
CURDATE
関数もないので、それをGETDATE()
に変換したことに注意してください。
Where句で次の条件を使用します
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に感謝します
これは正確な答えではありませんが、日時変数から時間部分をトリミングする方法の例です
CONVERT(VARCHAR(10)、date_manufactured、10)= CONVERT(VARCHAR(10)、@ startdate、10))
最後に私はそれを成し遂げます
WHERE EnterDate> Convert(DATETIME、Convert(varchar、DATEADD(DAY、0、GETDATE())、101))