我想转换一个像这样的字符串:
'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')
这个问题意味着我必须将字符串解析为一种标准格式,然后使用其中一种代码进行转换。对于这样一个平凡的行动来说,这似乎很荒谬。有没有更简单的方法?
当前回答
试试这个
Cast('7/7/2011' as datetime)
and
Convert(DATETIME, '7/7/2011', 101)
有关详细信息,请参阅CAST和CONVERT (Transact-SQL)。
其他回答
dateadd(day,0,'10/15/2008 10:06:32 PM')
本页包含CONVERT函数可用的所有指定日期时间转换的一些引用。如果您的值不属于可接受的模式之一,那么我认为最好的方法是采用ParseExact路线。
试试这个
Cast('7/7/2011' as datetime)
and
Convert(DATETIME, '7/7/2011', 101)
有关详细信息,请参阅CAST和CONVERT (Transact-SQL)。
SQL Server(2005, 2000, 7.0)没有任何灵活的,甚至是不灵活的方法来获取任意结构的字符串格式的datetime并将其转换为datetime数据类型。
所谓“随意”,我指的是“一种写作者(虽然可能不是你、我或地球另一边的人)认为是直观和完全明显的形式。”坦率地说,我不确定是否有这样的算法。
对于这个问题,我使用的最好的解决方案是在Sql Server 2005中有一个使用DateTime的CLR函数。Parse或ParseExact函数返回指定格式的DateTime值。