我有一个包含日期/时间列的表格,其值为9/11/2012 11:50:08 AM
,9/11/2012 4:06:19 PM
,10/11/2012 4:06:19 PM
如何检索'9/11/2012'
上的日期记录?
答案 0 :(得分:3)
这将在MM/dd/yyyy
SELECT CONVERT(DATETIME, '9/11/2012 11:50:08 AM', 101);
要进入dd/MM/yyyy
试试这个:
SELECT CONVERT(DATETIME, '9/11/2012 11:50:08 AM', 103);
有关详情,请参阅CAST and CONVERT (Transact-SQL)和How to convert from string to datetime?
编辑:(来自您的评论)
如果您的查询与select * from table where Date like '9/11/2012%'
类似,那么您需要转换Date
。(假设您的Date
列为varchar
)
您的查询应该是:
如果9/11/2012
采用MM/dd/yyyy
格式,请尝试以下操作:
SELECT * FROM TABLE WHERE CONVERT(DATETIME, DATE, 101) = '9/11/2012'
如果9/11/2012
采用dd/MM/yyyy
格式,请尝试以下操作:
SELECT * FROM TABLE WHERE CONVERT(DATETIME, DATE, 103) = '9/11/2012'
答案 1 :(得分:0)
我假设您的列是datetime
列,并且您想要获取特定日期的所有行。
在SQL Server 2008中,您可以将datetime
列投射到日期。
select *
from YourTable
where cast(DateTimeCol as date) = '2012-09-11'
如果您需要使用字符串文字,我建议您在SQL Server 2008中使用dateformat yyyy-mm-dd
。
如果可以使用日期参数,那就更好了。
select *
from YourTable
where cast(DateTimeCol as date) = @DateParam
答案 2 :(得分:0)
select * from table where convert(date,date_col)='2012-09-11'