2015-08-06 17 views
5

Güncel günlerden her şeyi seçen SQL komut dosyası var.3 gün önce kimyeye git

SELECT [ClientID] from [logs] where Date > CONVERT (date, SYSDATETIME()) 

Tarih DateTime türüdür.

Son 3 gün içinde her şeyi nasıl alabilirim? Sanırım SYSDATETIME() sonucundan 3 gün çıkarmam gerekiyor, ama nasıl? ARASINDAKİ kullanma

+1

DATEADD (GÜN, -3, DÖNÜŞTÜRME (tarih, SYSDATETIME())) – mxix

cevap

6
SELECT [ClientID] from [logs] where Date > DATEADD(day, -3, CONVERT (date, SYSDATETIME())) 
+0

@vico hi , cevap buldunuz mu? – Backs

1

Kullanım BETWEEN

SELECT ClientID 
FROM logs 
WHERE Date BETWEEN SYSDATETIME() AND SYSDATETIME() - 3 
+0

hata var "İşlenen türü çakışması: datetime2, int ile uyumsuz" – vico

+0

BETWEEN ve Tarih kullanımıyla ilgili burada cevaba bakın: http://stackoverflow.com/a/25564544/4654008 – Thomas

0

güzel. Ayrıca DATEADD işlevini tercih ediyorum. Ancak SYSDATETIME fonksiyonunun (ya da biz GETDATE() yapmamın), o anki zamandan önceki ancak üç günlük süre içinde olayların dahil edilemeyeceği anlamına da geldiği gerçeğinin farkında olun. Her iki tarafı datetime yerine bir tarihe dönüştürmeniz gerekebilir. MySQL kullanımı için

0
SELECT [ClientID] from [logs] where Date > DATEADD(day, -3, SYSDATETIME()) 
2

bu:

SELECT DATE_ADD(CURRENT_DATE, INTERVAL - 3 DAY); 
+2

sql-server mysql değil – Backs

1

Kullanım GETDATE(): Evet, sistemden tarihi verildi!

ofset veri tabanı saat dilimi bulunmayan bir tarih saat değeri olarak mevcut veri tabanı sistemi zaman damgasını döndürür. Bu değer, numaralı bilgisayarın SQL Server örneğinin çalıştığı işletim sisteminden türetilen değeridir.

sorgu:

SELECT [ClientID] from [logs] where (Date > GETDATE() - 3) 

fazla Referans:

GETDATE Detailed Documentation

İlgili konular