当我尝试这个SQL查询时
select format(getdate(), 'yyyy-MM-dd HH:mm:ss.fff')
我得到了这个结果:
2016-07-01 23:19:16.573
但是当我尝试这个时,它会抛出一个错误:
select format('2016-06-28T23:44:23.7573244Z', 'yyyy-MM-dd HH:mm')
错误:
参数数据类型varchar对于格式函数的参数1无效。
为什么会这样?我认为两者几乎相似。
答案 0 :(得分:3)
在致电DATETIME
之前,您需要先将字符串转换为FORMAT
对象:
FORMAT(CONVERT(DATETIME, '2016-06-28T23:44:23.757Z', 127), 'yyyy-MM-dd HH:mm')
如果您想使用原始输入,则可能需要STUFF
远离毫秒精度的额外时间数据:
FORMAT(CONVERT(DATETIME,
STUFF('2016-06-28T23:44:23.7573244Z', 24, 4, ''),
127), 'yyyy-MM-dd HH:mm')