我有一个表,其中包含日期/时间列,其值如9/11/2012 11:50:08 AM
, 9/11/2012 4:06:19 PM
,10/11/2012 4:06:19 PM
如何检索该日期的记录'9/11/2012'
?
我有一个表,其中包含日期/时间列,其值如9/11/2012 11:50:08 AM
, 9/11/2012 4:06:19 PM
,10/11/2012 4:06:19 PM
如何检索该日期的记录'9/11/2012'
?
这将返回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 和 CONVERT (Transact-SQL)以及如何从字符串转换为日期时间?
编辑:(来自您的评论)
如果您的查询是这样的,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'
我假设您的列是一datetime
列,并且您想要获取特定日期的所有行。
在 SQL Server 2008 中,您可以将datetime
列转换为最新。
select *
from YourTable
where cast(DateTimeCol as date) = '2012-09-11'
yyyy-mm-dd
如果您需要使用字符串文字,我建议您在 SQL Server 2008 中使用 dateformat来表示日期。
如果您可以使用日期参数,那就更好了。
select *
from YourTable
where cast(DateTimeCol as date) = @DateParam
select * from table where convert(date,date_col)='2012-09-11'