yyyy.mm.dd.hh.mm.ss模式代码的日期时间模式?

时间:2010-07-27 17:50:56

标签: sql sql-server sql-server-2005

“yyyy.mm.dd.hh.mm.ss”的日期格式代码是什么?

我知道34(日期格式代码)是“yyyymmddhhmmss”,但是“yyyy.mm.dd.hh.mm.ss”的代码呢?

这是在SQL 2005上。

3 个答案:

答案 0 :(得分:3)

CAST and CONVERT on MSDN说“不”。

您必须使用样式102和108进行两次CONVERT,并使用连接和REPLACE。

您从哪里获得“34”日期格式代码?

答案 1 :(得分:1)

正如gbn所说,使用一种现有格式和一些字符串连接会起作用。另一种选择是:

SELECT
    CAST(YEAR(my_date) AS CHAR(4)) + '.' +
    RIGHT('0' + CAST(MONTH(my_date) AS VARCHAR(2)), 2) + '.' +
    RIGHT('0' + CAST(DAY(my_date) AS VARCHAR(2)), 2) + '.' +
    RIGHT('0' + CAST(DATEPART(HOUR, my_date) AS VARCHAR(2)), 2) + '.' +
    RIGHT('0' + CAST(DATEPART(MINUTE, my_date) AS VARCHAR(2)), 2) + '.' +
    RIGHT('0' + CAST(DATEPART(SECOND, my_date) AS VARCHAR(2)), 2)

答案 2 :(得分:1)

考虑

 SELECT CONVERT(VARCHAR(16), GETDATE(), 120) AS [YYYY-MM-DD] 
 ---returns--- yyyy-mm-dd hh:ss

您可以使用REPLACE转换字符串

 REPLACE('a b c',' ','.')  
 ----returns--- a.b.c

你可以递归地堆叠你得到的东西

Select (
    replace((replace((replace(CONVERT(VARCHAR(16), GETDATE(), 120),' ','.')), ':', '.')), '-', '.')
    )

返回:yyyy.mm.dd.hh.ss

适用于日期时间戳或文件名!