73

作成日が今日の日付であるデータベースからレコードを取得するにはどうすればよいですか?

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET_users] 
WHERE DATE(Submission_date) = DATE(NOW())

これはSQLServer2000を使用している場合は機能せず、送信日は日時フィールドです

4

5 に答える 5

78

SQL Serverを使用しているようです。その場合GETDATE()、またはcurrent_timestamp役立つ可能性があります。ただし、システムの日付を比較する日付の形式が一致していることを確認する必要があります(タイムゾーン、粒度など)。

例えば

where convert(varchar(10), submission_date, 102) 
    = convert(varchar(10), getdate(), 102)
于 2012-08-14T15:09:29.733 に答える
62

これを試してみませんか?

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET_users] 
WHERE CAST(Submission_date AS DATE) = CAST(GETDATE() AS DATE)

T-SQLには、C#のような「暗黙の」キャストは実際にはありません。明示的にCAST(またはCONVERT)を使用する必要があります。

また、GETDATE()またはCURRENT_TIMESTAMPを使用して「現在」の日付と時刻を取得します。

更新: SQL Server 2000に取り組んでいるため、これまでのところ、これらのアプローチはいずれも機能しません。代わりにこれを試してください:

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET_users] 
WHERE DATEADD(dd, 0, DATEDIFF(dd, 0, submission_date)) = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))
于 2012-08-14T15:09:20.457 に答える
8

別の方法があるかもしれませんが、これはうまくいくはずです:

SELECT [Title], [Firstname], [Surname], [Company_name], [Interest] 
FROM [dbo].[EXTRANET] 
WHERE day(Submission_date)=day(now) and 
     month(Submission_date)=month(now)
     and year(Submission_date)=year(now)
于 2012-08-14T15:11:10.217 に答える
2

簡単な方法は、次のような条件を使用することです(目的の日付を使用> GETDATE()-1)

SQLステートメント「特定の日付」>GETDATE()-1

于 2018-11-05T06:39:57.117 に答える
2

レコードの作成日が今日の日付であるすべてのレコードを取得するにはWHERE句の後のコードを使用します

WHERE  CAST(Submission_date AS DATE) = CAST( curdate() AS DATE)
于 2021-01-02T07:05:27.630 に答える