Saya memiliki query untuk mengambil tanggal diff antara 2 datetime sebagai :
SELECT DATEDIFF(DAY, @CreatedDate , GETDATE())
Ex :
SELECT DATEDIFF(DAY, '2013-03-13 00:00:00.000' , GETDATE())
Aku harus memiliki permintaan kerja sama yang akan kurangi hari dari dibuat di malam hari:
SELECT DATEDIFF(DAY, **@CreatedDate- 1** , GETDATE())
Saya tidak yakin tentang apa tepatnya yang anda coba lakukan, tapi saya pikir ini SQL fungsi akan membantu anda:
SELECT DATEADD(day,-1,'2013-04-01 16:25:00.250')
Kode di atas akan memberikan anda 2013-03-31 16:25:00.250
.
Ini akan membawa anda kembali tepat satu hari dan bekerja pada setiap standar tanggal-waktu atau format tanggal.
Coba jalankan perintah ini dan melihat jika ini memberi anda apa yang anda cari adalah:
SELECT DATEADD(day,-1,@CreatedDate)
Ini harus bekerja.
select DATEADD(day, -1, convert(date, GETDATE()))
Sejujurnya saya hanya menggunakan:
select convert(nvarchar(max), GETDATE(), 112)
yang memberikan YYYYMMDD
dan minus satu dari itu.
Atau lebih benar
select convert(nvarchar(max), GETDATE(), 112) - 1
untuk tanggal kemarin.
Ganti Getdate()
dengan nilai OrderDate
select convert(nvarchar (max),OrderDate,112)-1 AS SubtractDate FROM Orders
harus melakukannya.
Anda dapat mencoba ini.
Timestamp=2008-11-11 13:23:44.657;
SELECT DATE_SUB(OrderDate,INTERVAL 1 DAY) AS SubtractDate FROM Orders
output :2008-11-10 13:23:44.657
Saya berharap, ini akan membantu untuk memecahkan masalah anda.