Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in SQL by (6.1k points)

I am trying:

SELECT * 
FROM dbo.March2010 A
WHERE A.Date >= 2010-04-01;

 A.Date looks like: 2010-03-04 00:00:00.000

But, this is not working.

Can anybody give a reference for why?

1 Answer

0 votes
by (12.7k points)
edited by
select *  
from dbo.March2010 A 
where A.Date >= Convert(datetime, '2010-04-01' )

In this query, 2010-4-01 is treated as a mathematical expression. Therefore, in essence, it reads

select *  
from dbo.March2010 A 
where A.Date >= 2005; 

(2010 minus 4 minus 1 is 2005, converting this to a proper datetime and adding single quotes will solve this problem.)

So the parser here might allow you to get away with

select *  
from dbo.March2010 A 
where A.Date >= '2010-04-01'

It will be doing the conversion for you, but in my view, it is less readable than explicitly converting to a datetime for the maintenance programmer that will come after you. 

Want to be an expert in SQL programming? Join Intellipaat's SQL Certification course and learn in depth.

Related questions

Welcome to Intellipaat Community. Get your technical queries answered by top developers!

30.5k questions

32.5k answers

500 comments

108k users

Browse Categories

...