暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

如何在 SQL 中格式化日期和时间的输出?

乐呵呵 2024-07-16
109

在 SQL 中要格式化日期和时间的输出,可以使用相应的日期函数和格式化代码。以下是一些常见的方法和示例,具体的函数和语法可能因使用的数据库管理系统而略有不同:


MySQL 中的日期格式化

使用 DATE_FORMAT() 函数来格式化日期/时间数据。其语法为:DATE_FORMAT(date, format),其中 date 是要格式化的日期列或日期表达式,format 是指定的格式代码。

例如,要获取当前日期并以 yyyy-MM-dd 格式显示,可以使用:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');

常见的格式化代码如下:

  • %s:两位数字形式的秒(00, 01, …, 59)
  • %i:两位数字形式的分(00, 01, …, 59)
  • %h:两位数字形式的小时,12 小时制(01, 02, …, 12)
  • %H:两位数字形式的小时,24 小时制(00, 01, …, 23)
  • %k:数字形式的小时,24 小时制(0, 1, …, 23)
  • %l:数字形式的小时,12 小时制(1, 2, …, 12)
  • %t:24 小时的时间形式(hh:mm:ss)
  • %r:12 小时的时间形式(hh:mm:ss am 或 hh:mm:ss pm)
  • %p:am 或 pm
  • %w:一周中每一天的名称(Sunday, Monday, …, Saturday)
  • %a:一周中每一天名称的缩写(Sun, Mon, …, Sat)
  • %d:两位数字表示月中的天数(00, 01, …, 31)
  • %e:数字形式表示月中的天数(1, 2, …, 31)
  • %D:带有英文前缀的月中的天(1st, 2nd, 3rd, …)
  • %j:以三位数字表示年中的天数(001, 002, …, 366)
  • %W:星期名
  • %m:两位数字表示的月份(01, 02, …, 12)
  • %c:数字表示的月份(1, 2, …, 12)
  • %M:月名(January, February, …, December)
  • %b:缩写的月名(Jan, Feb, …, Dec)
  • %y:两位数字表示的年份
  • %Y:四位数字表示的年份
  • %%:直接值“%”


SQL Server 中的日期格式化

可以使用 CONVERT() 函数进行日期格式化。例如,将当前日期时间格式化为 yyyy-MM-dd HH:mm:ss 格式:

SELECT CONVERT(varchar(19), GETDATE(), 20);


一些常用的格式化代码如下:

  • 0 或 100:mm dd yyyy hh:miAM/PM(例如:05 16 2006 10:57AM)
  • 1:mm/dd/yy(例如:05/16/06)
  • 2:yy.mm.dd(例如:06.05.16)
  • 3:dd/mm/yy(例如:16/05/06)
  • 4:dd.mm.yy(例如:16.05.06)
  • 5:dd-mm-yy(例如:16-05-06)
  • 6:dd mon yy(例如:16 May 06)
  • 7:mon dd, yy(例如:May 16, 06)
  • 8:hh:mm:ss(例如:10:57:46)
  • 9 或 109:mm dd yyyy hh:mi:ss:mmmAM/PM(例如:05 16 2006 10:57:46:827AM)
  • 10:mm-dd-yy(例如:05-16-06)
  • 11:yy/mm/dd(例如:06/05/16)
  • 12:yymmdd(例如:060516)
  • 20:yyyy-mm-dd hh:mm:ss(例如:2006-05-16 10:57:47)
  • 21:yyyy-mm-dd hh:mm:ss.mmm(例如:2006-05-16 10:57:47.157)
  • 22:mm/dd/yy hh:mm:ss AM/PM(例如:05/16/06 10:57:47 AM)
  • 23:yyyy-mm-dd(例如:2006-05-16)
  • 24:hh:mm:ss(例如:10:57:47)
  • 25:yyyy-mm-dd hh:mm:ss.fff(例如:2006-05-16 10:57:47.250)


Oracle 中的日期格式化


在 Oracle 中,可以使用 TO_CHAR() 函数来格式化日期。例如,要将日期以 yyyy-MM-dd HH24:mi:ss 格式显示:

SELECT TO_CHAR(SYSDATE, 'yyyy-MM-dd HH24:mi:ss') FROM DUAL;

常用的格式化代码包括:

  • YYYY:四位数字的年
  • MM:两位数字的月份(01 到 12)
  • DD:两位数字的日期(01 到 31)
  • HH24:24 小时制的小时(00 到 23)
  • MI:分钟(00 到 59)
  • SS:秒(00 到 59)
  • AM 或 PM:12 小时制的上午或下午标记
  • A.M. 或 P.M.:12 小时制的上午或下午标记(带点)
  • HH12:12 小时制的小时(01 到 12)
  • MON:月份的缩写(JAN 到 DEC)
  • MONTH:完整的月份名称
  • DY:星期的缩写(SUN 到 SAT)
  • DAY:完整的星期名称

可以根据使用的具体数据库系统,选择相应的函数和格式化代码来满足日期和时间输出的格式化需求。此外,不同的数据库还可能提供其他特定的日期函数和方法,可查阅相应的数据库文档以获取更多详细信息。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论