使用转换时缺少时间部分

时间:2016-05-02 07:00:47

标签: sql sql-server tsql datetime

我在这样的列中有一个日期(2016-06-01 21:50:00.000) - YYYY-MM-DD HH:MM:SS

我正在尝试将其转换为像这样 - > (01/06/2016 21:50:00.000DD-MM-YYYY HH:MM:SS

我尝试了以下内容;

SELECT CONVERT(VARCHAR(30), CONVERT(DATETIME, MYDATECOLUMN, 101), 103)
FROM MYTABLE

缺少时间部分

有人可以建议如何实现这个目标吗?

我无权更改表格中的数据

3 个答案:

答案 0 :(得分:1)

尝试以下代码

select CONVERT(VARCHAR(10), MYDATECOLUMN, 103) + ' '  + convert(VARCHAR(8), MYDATECOLUMN, 14) 
FROM MYTABLE

如果要显示毫秒,也会在第二部分中将varchar大小从8更改为12

  select CONVERT(VARCHAR(10), MYDATECOLUMN, 103) + ' '  + convert(VARCHAR(12), MYDATECOLUMN, 14) 
   FROM MYTABLE

答案 1 :(得分:1)

您可以将103用于日期部分,然后CAST将date_column用于TIME以获取时间部分。

<强> QUERY

SELECT CONVERT(VARCHAR(25), GETDATE(), 103) +
       ' ' + CAST(CAST(GETDATE() AS TIME) AS VARCHAR(20));

<强>结果

02/05/2016 12:43:05.9930000

或者如果你想删除毫秒部分,

<强> QUERY

SELECT CONVERT(VARCHAR(25), GETDATE(), 103) + 
       ' ' + CONVERT(VARCHAR(8), GETDATE(), 108);

<强>结果

02/05/2016 12:43:30

答案 2 :(得分:0)

试试这个

SELECT CONVERT(VARCHAR(10), Cast(MYDATECOLUMN as date), 103) +
   ' ' + CONVERT(VARCHAR(12),  Cast(MYDATECOLUMN as time),  113);