请教,SQL把字符串转换成日期输出我的数据库表里,字符串格式varchar,他的值是:20121220110513表1ID name riqi
1 张三 20121220110513
2 李四 20091224021523
3 王明
4 赵欣 20110608030512怎么样才能SQL把字符串的日期,输出日期类型呢?Select id,name,Convert(datetime,substring(riqi,1,8))但是输出的却是:2012-12-20 00:00:00.000
日期输出对了,但是时间呢,分秒呢?为什么就变成0了呢?请教各位,写个SQL。谢谢!
1 张三 20121220110513
2 李四 20091224021523
3 王明
4 赵欣 20110608030512怎么样才能SQL把字符串的日期,输出日期类型呢?Select id,name,Convert(datetime,substring(riqi,1,8))但是输出的却是:2012-12-20 00:00:00.000
日期输出对了,但是时间呢,分秒呢?为什么就变成0了呢?请教各位,写个SQL。谢谢!
从字符串向 datetime 转换时失败。
请 参考 这个
SELECT SUBSTRING(@a,1,4)+'-'+SUBSTRING(@a,5,2)+'-'+SUBSTRING(@a,7,2)+' '+SUBSTRING(@a,9,2)+':'+SUBSTRING(@a,11,2)+':'+SUBSTRING(@a,13,2)
/*
---------------------------------
2012-12-20 11:05:13
(1 行受影响)
*/
set @a='20121220110513'
SELECT SUBSTRING(@a,1,4)+'-'+SUBSTRING(@a,5,2)+'-'+SUBSTRING(@a,7,2)+' '+SUBSTRING(@a,9,2)+':'+SUBSTRING(@a,11,2)+':'+SUBSTRING(@a,13,2)
/*
---------------------------------
2012-12-20 11:05:13
(1 行受影响)
*/
我的是SQL2005你写的对了,没有问题。
怎么样才能把我的字段代入
20121220110513
呢?怎么样代替呢?
我的数据库里的列里才是20121220110513
输出的时候,怎么样才能,转换成日期。?
SUBSTRING(列名,1,4)+'-'+SUBSTRING(列名,5,2)+'-'+SUBSTRING(列名,7,2)+' '+SUBSTRING(列名,9,2)+':'+SUBSTRING(列名,11,2)+':'+SUBSTRING(列名,13,2)
FROM
表名
但是,这个SQL语句写的很长,有简约的方法吗?
convert(varchar(10),xx,120)