2013-11-27 7 views
5

की तुलना में कम है का चयन मैं एक मेज है (mytable) है कि शामिल हैं:सभी तिथि है कि आज

id, date 

और कुछ पंक्तियाँ (ईद उदाहरण के लिए):

4235   null 
3563 2013-11-27 08:02:53.917 
3143 2013-11-27 01:04:51.917 
1455   null 
5223 2013-11-26 08:02:53.917 
2123 2013-11-25 08:02:53.917 

मैं करना चाहते हैं उन सभी पंक्तियों का चयन करें जो आज से पहले उनकी तारीख या तारीख शून्य है।

तो मेरे उदाहरण में, यदि मैं 2013-11-27 पर क्वेरी चलाने मैं प्राप्त करना चाहते हैं:

4235   null 
1455   null 
5223 2013-11-26 08:02:53.917 
2123 2013-11-25 08:02:53.917 

मैं के साथ यह करने के लिए लगता है:

select case when 
(
(select DATEPART(yyyy,dailybudgetexceeded) from sensplit_commercial_goal where 
commercialGoalId = 'dbe20d71-e304-4989-8524-5feef61d32a7') >= YEAR(GETDATE()) 
or... 

लेकिन शायद वहाँ एक छोटा रास्ता है।

किसी भी मदद की सराहना की!

+0

आप * आज * पहले दिनांक मतलब है? –

उत्तर

5
select * 
from sensplit_commercial_goal 
where commercialGoalId = 'dbe20d71-e304-4989-8524-5feef61d32a7' 
and (dailybudgetexceeded < getdate() or dailybudgetexceeded is null) 
6
select * from mytable 
where [date] < Convert(date, getdate()) or [date] is null 

SQLFiddle Demo

+0

क्यों GetDate() को तारीख में डालें? –

+1

यदि क्वेरी 2013-11-27 08: 02: 54.917 पर चलती है, तो 2013-11-27 08: 02: 53.917 के साथ रिकॉर्ड भी क्वेरी द्वारा वापस कर दिया जाएगा, जब तक कि आप GetDate() को – Raj

+0

ओपी तक नहीं डालते उस समय को कम करने के लिए नहीं कहा - कम से कम स्पष्ट रूप से –

3
SELECT * 
FROM sensplit_commercial_goal 
WHERE dailybudgetexceeded < CONVERT(date, GETDATE()) OR dailybudgetexceeded IS NULL 
+0

पोस्ट संपादित करना चाहिए क्यों GetDate() को डेट करें? –

+0

डेटाटाइम के समय भाग को कम करने के लिए। – kingkong0924

संबंधित मुद्दे