我想转换一个像这样的字符串:
'10/15/2008 10:06:32 PM'
转换为Sql Server中的DATETIME值。
在甲骨文,我会这样说:
TO_DATE('10/15/2008 10:06:32 PM','MM/DD/YYYY HH:MI:SS AM')
这个问题意味着我必须将字符串解析为一种标准格式,然后使用其中一种代码进行转换。对于这样一个平凡的行动来说,这似乎很荒谬。有没有更简单的方法?
我想转换一个像这样的字符串:
'10/15/2008 10:06:32 PM'
转换为Sql Server中的DATETIME值。
在甲骨文,我会这样说:
TO_DATE('10/15/2008 10:06:32 PM','MM/DD/YYYY HH:MI:SS AM')
这个问题意味着我必须将字符串解析为一种标准格式,然后使用其中一种代码进行转换。对于这样一个平凡的行动来说,这似乎很荒谬。有没有更简单的方法?
当前回答
这段代码解决了我的问题:
convert(date,YOUR_DATE,104)
如果你使用时间戳,你可以你下面的代码:
convert(datetime,YOUR_DATE,104)
其他回答
简短的回答:
SELECT convert(date, '10/15/2011 00:00:00', 101) as [MM/dd/YYYY]
其他日期格式可以在SQL Server Helper > SQL Server日期格式中找到
对于这个问题,我使用的最好的解决方案是在Sql Server 2005中有一个使用DateTime的CLR函数。Parse或ParseExact函数返回指定格式的DateTime值。
您可以通过使用这段代码轻松实现这一点。
SELECT Convert(datetime, Convert(varchar(30),'10/15/2008 10:06:32 PM',102),102)
我花了一分钟才弄明白,所以在这里它可能会帮助到别人:
在SQL Server 2012和更好的版本中,你可以使用这个函数:
SELECT DATEFROMPARTS(2013, 8, 19);
下面是我如何将日期的部分提取到这个函数中:
select
DATEFROMPARTS(right(cms.projectedInstallDate,4),left(cms.ProjectedInstallDate,2),right( left(cms.ProjectedInstallDate,5),2)) as 'dateFromParts'
from MyTable
试试这个
Cast('7/7/2011' as datetime)
and
Convert(DATETIME, '7/7/2011', 101)
有关详细信息,请参阅CAST和CONVERT (Transact-SQL)。