如何将 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