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
------解决思路----------------------
另時間中日期是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 这个日期,即年月日。