我想像这样转换一个字符串:
'10/15/2008 10:06:32 PM'
转换为Sql Server中的等效DateTime值。
在Oracle中,我会这样说:
TO_DATE('10/15/2008 10:06:32 PM','MM/DD/YYYY HH:MI:SS AM')
This question意味着我必须将字符串解析为其中一个standard formats,然后使用其中一个代码进行转换。对于这样一个平凡的操作来说,这似乎是可笑的。有没有更简单的方法?
发布于 2011-08-24 20:26:06
尝尝这个
Cast('7/7/2011' as datetime)
和
Convert(varchar(30),'7/7/2011',102)
有关更多详细信息,请参阅CAST and CONVERT (Transact-SQL)。
发布于 2008-10-16 02:30:50
在您的查询处理器中运行此命令。它像这样格式化日期和/或时间,其中之一应该会给你你正在寻找的东西。适应起来并不难:
Declare @d datetime
select @d = getdate()
select @d as OriginalDate,
convert(varchar,@d,100) as ConvertedDate,
100 as FormatValue,
'mon dd yyyy hh:miAM (or PM)' as OutputFormat
union all
select @d,convert(varchar,@d,101),101,'mm/dd/yy'
union all
select @d,convert(varchar,@d,102),102,'yy.mm.dd'
union all
select @d,convert(varchar,@d,103),103,'dd/mm/yy'
union all
select @d,convert(varchar,@d,104),104,'dd.mm.yy'
union all
select @d,convert(varchar,@d,105),105,'dd-mm-yy'
union all
select @d,convert(varchar,@d,106),106,'dd mon yy'
union all
select @d,convert(varchar,@d,107),107,'Mon dd, yy'
union all
select @d,convert(varchar,@d,108),108,'hh:mm:ss'
union all
select @d,convert(varchar,@d,109),109,'mon dd yyyy hh:mi:ss:mmmAM (or PM)'
union all
select @d,convert(varchar,@d,110),110,'mm-dd-yy'
union all
select @d,convert(varchar,@d,111),111,'yy/mm/dd'
union all
select @d,convert(varchar,@d,12),12,'yymmdd'
union all
select @d,convert(varchar,@d,112),112,'yyyymmdd'
union all
select @d,convert(varchar,@d,113),113,'dd mon yyyy hh:mm:ss:mmm(24h)'
union all
select @d,convert(varchar,@d,114),114,'hh:mi:ss:mmm(24h)'
union all
select @d,convert(varchar,@d,120),120,'yyyy-mm-dd hh:mi:ss(24h)'
union all
select @d,convert(varchar,@d,121),121,'yyyy-mm-dd hh:mi:ss.mmm(24h)'
union all
select @d,convert(varchar,@d,126),126,'yyyy-mm-dd Thh:mm:ss:mmm(no spaces)'
发布于 2008-10-29 20:33:17
SQL Server (2005、2000、7.0)没有任何灵活或甚至不灵活的方法来获取任意结构的字符串格式的日期时间,并将其转换为日期时间数据类型。
我所说的“任意的”,是指“一种形式,写它的人,虽然可能不是你或我或地球另一端的人,会认为是直观的和完全显而易见的。”坦率地说,我不确定是否有这样的算法。
https://stackoverflow.com/questions/207190
复制相似问题