SQL 日期格式

Posted

技术标签:

【中文标题】SQL 日期格式【英文标题】:SQL Date Format 【发布时间】:2009-11-25 04:11:45 【问题描述】:

如何将 SQL 中的数据格式化为如下格式: 2009 年 11 月 23 日,星期一

【问题讨论】:

从 XXX 中选择“2009 年 11 月 23 日,星期一”;) @tster: FROM DUAL 至少可以在 Oracle 和 mysql 上工作:p @bochur1:您应该使用您使用的 RDBMS 品牌标记您的问题,因为答案因人而异。 【参考方案1】:

通常的嫌疑人:

对于 MySQL:

DATE_FORMAT(t.date_column, '%W, %M, %d %Y')

DATE_FORMAT

对于 SQL Server:

DATENAME(dw, t.date_column) +', '+ DATENAME(mm, t.date_column) +', '+ CAST(DAY(t.date_column) AS VARCHAR(2)) +' '+ CAST(YEAR(t.date_column) AS VARCHAR(4))

DATENAME

对于甲骨文:

TO_CHAR(t.date_column, 'DAY, MONTH, DD YYYY')

TO_CHAR

【讨论】:

什么版本的 SQL Server DATENAME 中有下划线? 忠告 - 除非您将 DAY 和 YEAR 值转换为 varchar、nvarchar 等,否则 SQL Server 语句不会执行。支持者可能应该检查答案是否具有正确的语法或可以在投票前执行 - 否冒犯你 OMG。 哎呀,我一直被 SQL Server 缺乏隐式数据类型转换所困扰。无意冒犯 - 非常感谢您让我知道。 @Scozard,如果支持者编辑答案来修复它会更好:)【参考方案2】:

这适用于 SQL Server (T-SQL)

SELECT DATENAME(dw,GETDATE()) + ', ' + DATENAME(MM, GETDATE()) + ', ' + CAST(DAY(GETDATE()) AS VARCHAR(2)) + ' ' + CAST(YEAR(GETDATE()) AS VARCHAR(4))

只需将 GETDATE() 替换为日期变量

Learn more about DATENAME

【讨论】:

【参考方案3】:

假设您使用的是 MySQL,

DATE_FORMAT(field_name, '%W, %M, %d %Y')

【讨论】:

【参考方案4】:

您使用的是哪个提供商?在 SQL Server 中,它将是 w/CONVERT。见here。

【讨论】:

以上是关于SQL 日期格式的主要内容,如果未能解决你的问题,请参考以下文章

sql日期格式化怎么处理?

SQL 怎么将日期时间格式转换成日期

如何在 SQL Server中 将日期格式化

如何在 SQL Server中 将日期格式化

在Oracle使用sql语句中如何插入日期格式的数据

sql怎么把字符串转换为日期格式