0

我有一个表,其中包含日期/时间列,其值如9/11/2012 11:50:08 AM, 9/11/2012 4:06:19 PM,10/11/2012 4:06:19 PM

如何检索该日期的记录'9/11/2012'

4

3 回答 3

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 和 CONVERT (Transact-SQL)以及如何从字符串转换为日期时间?

编辑:(来自您的评论)

如果您的查询是这样的,select * from table where Date like '9/11/2012%'那么您需要为此进行转换Date。(假设您的Date列是varchar

您的查询应该是:
如果9/11/2012MM/dd/yyyy格式试试这个:

SELECT * FROM TABLE WHERE CONVERT(DATETIME, DATE, 101) = '9/11/2012'

或者如果9/11/2012dd/MM/yyyy格式试试这个:

SELECT * FROM TABLE WHERE CONVERT(DATETIME, DATE, 103) = '9/11/2012'
于 2012-09-13T05:03:40.430 回答
1

我假设您的列是一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
于 2012-09-13T05:38:16.337 回答
0
select * from table where convert(date,date_col)='2012-09-11'
于 2012-09-13T06:40:05.970 回答