如何将 SQL 服务器 R2 中的日期时间格式化为 dd-MMM-yy(或 dd-mon-yy)?
How can I format a datetime in SQL Server R2 to dd-MMM-yy (or dd-mon-yy)?
示例输入:2014-03-28 00:00:00.000
示例输出:28-Mar-14
当前 SQL:
SELECT StartDate
FROM myTable
令人惊讶的是,我在 SQL 服务器的 Whosebug 上找不到这种特殊格式,所以我想我应该添加它以帮助下一个人节省一些时间。
新 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
函数。
注意:如果日期字段通常不为空,则 CHAR(9) 将使用比 VARCHAR 更少的字节。如果字段中有很多空白数据,我会考虑将 CHAR(9) 替换为 VARCHAR,因为在这种情况下它会输出更少的字节。
试试这个:-
SELECT REPLACE(CONVERT(VARCHAR,GETDATE(),6),' ','-')
您的查询将是:-
SELECT REPLACE(CONVERT(VARCHAR,StartDate,6),' ','-') AS StartDate FROM myTable
示例输入:2014-03-28 00:00:00.000
示例输出:28-Mar-14
当前 SQL:
SELECT StartDate
FROM myTable
令人惊讶的是,我在 SQL 服务器的 Whosebug 上找不到这种特殊格式,所以我想我应该添加它以帮助下一个人节省一些时间。
新 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
函数。
注意:如果日期字段通常不为空,则 CHAR(9) 将使用比 VARCHAR 更少的字节。如果字段中有很多空白数据,我会考虑将 CHAR(9) 替换为 VARCHAR,因为在这种情况下它会输出更少的字节。
试试这个:-
SELECT REPLACE(CONVERT(VARCHAR,GETDATE(),6),' ','-')
您的查询将是:-
SELECT REPLACE(CONVERT(VARCHAR,StartDate,6),' ','-') AS StartDate FROM myTable