当前位置: 代码迷 >> Sql Server >> 一个时间转换的有关问题
  详细解决方案

一个时间转换的有关问题

热度:77   发布时间:2016-04-24 09:43:02.0
一个时间转换的问题。

select convert(varchar(30),cast('15-Jul-11 20:20:00' as datetime),121)


结果报错,想知道,怎么把类似:15-Jul-11 20:20:00,这种格式的时间成功转换?
------解决思路----------------------
修正自定义函数~~
CREATE FUNCTION dbo.MyConvertDate(@INPUTSTR VARCHAR(20))
RETURNS DATETIME
AS
BEGIN
SET @INPUTSTR=REPLACE(@INPUTSTR,'Jan','01')
SET @INPUTSTR=REPLACE(@INPUTSTR,'Feb','02')
SET @INPUTSTR=REPLACE(@INPUTSTR,'Mar','03')
SET @INPUTSTR=REPLACE(@INPUTSTR,'Apr','04')
SET @INPUTSTR=REPLACE(@INPUTSTR,'May','05')
SET @INPUTSTR=REPLACE(@INPUTSTR,'Jun','06')
SET @INPUTSTR=REPLACE(@INPUTSTR,'Jul','07')
SET @INPUTSTR=REPLACE(@INPUTSTR,'Aug','08')
SET @INPUTSTR=REPLACE(@INPUTSTR,'Sep','09')
SET @INPUTSTR=REPLACE(@INPUTSTR,'Oct','10')
SET @INPUTSTR=REPLACE(@INPUTSTR,'Nov','11')
SET @INPUTSTR=REPLACE(@INPUTSTR,'Dec','12')
SET @INPUTSTR='20'+@INPUTSTR
RETURN CAST(@INPUTSTR AS DATETIME)
END

------解决思路----------------------
引用:
15-Jul-11 20:20:00 

時間字符串有問題。

另時間中日期是2015年7月15日還是2011年7月15日。
------解决思路----------------------
SQL Server 不支持月份的英文简写,只能使用具体的数据,如果你的数据来源都包含 Jun May 这些的话,采用 3# 的函数是个不错的选择。

PS :  15-Jul-11 20:20:00  替换成  15-07-11 20:20:00  之后,实际写入的日期是 2015-07-11 这个日期,即年月日。

  相关解决方案