Anda harus melihat format waktu tanggal yang tersedia di SQL Server:http:// msdn.microsoft.com/en-us/library/ms187928.aspx
yyyy-mm-dd hh:mi
adalah apa yang harus Anda gunakan:
coba:
SELECT
*
FROM Records
WHERE DateCreated>='2007-02-30 10:32' AND DateCreated<='2008-06-21 14:19'
dalam kueri di atas, string akan dikonversi ke tipe data datetime jika DateCreated
adalah kolom datetime. dan kueri akan berfungsi.
anda dapat membuat variabel lokal dari tipe data datetime dan menggunakan kueri seperti:
DECLARE @StartDate datetime, @EndDate datetime
SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
SELECT
*
FROM Records
WHERE DateCreated>[email protected] AND DateCreated<[email protected]
Saya suka menggunakan <, <=,>=, atau> karena memungkinkan lebih banyak fleksibilitas daripada BETWEEN
dan memaksa Anda untuk berpikir untuk menyertakan titik akhir atau tidak.
Hal lain yang perlu dipertimbangkan adalah mendapatkan semua data dari hari yang lengkap:
DECLARE @StartDate datetime, @EndDate datetime
--set the days you want
SELECT @StartDate='2007-02-30 10:32', @EndDate='2008-06-21 14:19'
--remove the time
SELECT @StartDate=DATEADD(day,DATEDIFF(day,0,@StartDate),0), @EndDate=DATEADD(day,DATEDIFF(day,0,@EndDate),0)
--get everything on '2007-02-30' up to the end of the day on '2008-06-21'
SELECT
*
FROM Records
WHERE DateCreated>[email protected] AND DateCreated<@EndDate+1