在SQL Server中,我需要以'2014-01-01 14:13:00.000'
或'hh:mi:ss'
格式从此日期时间'hh:mi:ss:mmm'
中提取时间部分。
我试过这个查询但是输出错了,为什么?
你能帮助我吗?
提前致谢
SELECT
CONVERT (VARCHAR (12), '2014-01-01 14:13:00.000', 114) 'hh:mi:ss:mmm',
CONVERT (VARCHAR (8), '2014-01-01 14:13:00.000', 108) 'hh:mi:ss';
输出:
'hh:mi:ss:mmm' 'hh:mi:ss'
2014-01-01 1 2014-01-
答案 0 :(得分:2)
试试这个:
SELECT cast(AttDate as time) [time]
答案 1 :(得分:1)
如果您从日期时间值转换,那么您的转化将正确无误:
SELECT
CONVERT (
VARCHAR (12),
CONVERT(datetime,'2014-01-01T14:13:00.000'),
114
) 'hh:mi:ss:mmm',
CONVERT (
VARCHAR (8),
CONVERT(datetime,'2014-01-01T14:13:00.000'),
108
) 'hh:mi:ss';
结果:
hh:mi:ss:mmm hh:mi:ss
------------ --------
14:13:00:000 14:13:00
实际上,您当前的代码要求将从 char样式数据转换为 char样式数据,因此样式参数被忽略。
答案 2 :(得分:0)
这个怎么样?
SELECT RIGHT('2014-01-01 14:13:00.000', 12)
或
SELECT LEFT(RIGHT('2014-01-01 14:13:00.000', 12), 8)
如果日期在表格中,您当然可以放置CONVERT(nvarchar,x)。
答案 3 :(得分:0)
试试这个
SELECT CONVERT(TIME(0),'2014-01-01 14:13:00.000') --> Will give 'hh:mi:ss'
SELECT CONVERT(TIME(3),'2014-01-01 14:13:00.000') --> Will give 'hh:mi:ss:mmm'
答案 4 :(得分:0)
.NET FORMAT功能也可用于SQL Server。您可以按如下方式使用它:
SELECT
FORMAT( CONVERT(datetime,'2014-01-01T14:13:00.000'),
'HH:mm:ss:fff' ) 'hh:mi:ss:mmm (custom)',
FORMAT( CONVERT(datetime,'2014-01-01T14:13:00.000'),
'HH:mm:ss' ) 'hh:mi:ss (custom)',
FORMAT( CONVERT(datetime,'2014-01-01T14:13:00.000'),
'T', 'NL-nl' ) 'hh:mi:ss (standard)';