sql日期格式顺序dd-mm-yyyy

时间:2016-03-17 20:03:42

标签: sql sql-server tsql date format

我正在使用此代码使用SQL格式化日期:

convert(VARCHAR, DT, 20)

输出结果为:

2016-01-01 20:40:12

但我如何才能获得第一天。

我想得到:dd-mm-yyyy:

01-01-2016 20:40:12

当我查看此表时: http://www.blackwasp.co.uk/sqldatetimeformats.aspx 我没有看到这种格式。

THX!

2 个答案:

答案 0 :(得分:2)

dd / mm / yyyy hh:mi:ss

  (CONVERT(varchar, DT, 103) + ' ' + CONVERT(varchar, DT, 108)) AS MyEuropeanDate

dd-mm-yyyy hh:mi:ss

  (CONVERT(varchar, DT, 105) + ' ' + CONVERT(varchar, DT, 108)) AS MyEuropeanDate

为了理解下一次,请查看Gordon在评论中明智地联系的官方文件: https://msdn.microsoft.com/en-us/library/ms187928.aspx

答案 1 :(得分:0)

无法找到本机tSQL函数,但您可以执行以下操作:

    DECLARE @Date DATETIME = '20160101';

SELECT CASE
         WHEN LEN(CAST(DAY(@Date) AS VARCHAR)) = 1 THEN '0'+CAST(DAY(@Date) AS VARCHAR)
         ELSE CAST(DAY(@Date) AS VARCHAR)
      END
      +'-'+
      CASE
         WHEN LEN(CAST(MONTH(@Date) AS VARCHAR)) = 1 THEN '0'+CAST(MONTH(@Date) AS VARCHAR)
         ELSE CAST(MONTH(@Date) AS VARCHAR)
      END
      +'-'+
      CAST(YEAR(@Date) AS VARCHAR)
      +' '+
      SUBSTRING(CONVERT(VARCHAR, @Date, 114), 1, 8);

或者你可以这样做:

DECLARE @Date DATETIME = '20160101';

SELECT  (REPLACE(CONVERT(varchar, @Date, 103),'/','-') + ' ' + CONVERT(varchar, @Date, 108))

结果:

enter image description here