如何将SQL Server R2中的日期时间格式化为dd-MMM-yy(或dd-mon-yy)?

时间:2015-07-28 18:14:39

标签: sql sql-server-2008-r2 datetime-format

示例输入:2014-03-28 00:00:00.000

示例输出:28-Mar-14

当前SQL:

SELECT StartDate
FROM myTable

令人惊讶的是,我在StackOverflow for SQL Server上找不到这种特殊的格式,所以我想我应该添加它以帮助保存下一个人的某个时间。

2 个答案:

答案 0 :(得分:1)

新SQL:

SELECT REPLACE(CONVERT(CHAR(9), StartDate, 6),' ','-') AS FormattedStartDate
FROM myTable

如果您需要根据需要进行调整,以下是它的工作原理:

CONVERT(CHAR(9), StartDate, 6)将输出CHAR(9)。确保这足够长,以达到您想要的输出。

第3个参数中6的值告诉CONVERT以格式输出 dd mon yy

请注意,如果你想要连字符( - ),斜杠(/)或其他什么而不是那些空格,格式有空格就是你需要REPLACE函数的原因。

注意:如果日期字段通常不为null,则CHAR(9)将使用比VARCHAR更少的字节。如果字段中有大量空白数据,我会考虑用VARCHAR替换CHAR(9),因为在这种情况下它会输出更少的字节。

答案 1 :(得分:1)

试试这个: -

SELECT REPLACE(CONVERT(VARCHAR,GETDATE(),6),' ','-')

您的查询将是: -

SELECT REPLACE(CONVERT(VARCHAR,StartDate,6),' ','-') AS StartDate FROM myTable