日付が固定日付と現在の日付/時刻の間にあることを確認するストアドプロシージャがあります(GETDATE()
を使用):
SELECT
a, b
FROM myTbl
WHERE
DATE BETWEEN 'Day start datetime' AND GETDATE()
...例えば :
WHERE
DATE BETWEEN '2013-09-10 00:00:00.00' AND 'GETDATE()'
どうやってするの?
DATEADD
/DATEDIFF
のペアの呼び出しは、日付を前の真夜中に切り捨てます:
SELECT a , b
FROM myTbl
WHERE DATE BETWEEN DATEADD(day,DATEDIFF(day,0,GETDATE()),0) and GETDATE()
または、SQL Server 2008以降を使用している場合:
SELECT a , b
FROM myTbl
WHERE DATE BETWEEN CONVERT(date,GETDATE()) and GETDATE()
'GETDATE()'
は文字列リテラル、GETDATE()
はT-SQL
関数。
クエリは次のようになります。
SELECT a , b
FROM myTbl
WHERE DATE BETWEEN '2013-09-10 00:00:00.0' and GETDATE()
WHERE DATE BETWEEN '2013-09-10 00:00:00.00' and GETDATE()
(GETDATE()
呼び出しを一重引用符で囲まない)は問題なく機能するはずです。
得られる Day start date time
Getdate()の戻り値をDate型に変換し、以下のようにDatetimeに再度変換します。
select a,b
from myTbl
where [date] between convert(datetime,convert([date], getdate()))
and getdate()