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 日期格式的主要内容,如果未能解决你的问题,请参考以下文章