SQL时间格式化

介绍
在数据库中,时间是一种常见的数据类型。在进行数据分析或者业务处理时,我们经常需要对时间进行格式化以满足不同的需求。本文将介绍在 SQL 中如何进行时间格式化的常用方法。
一、日期和时间类型
在 SQL 中,通常有以下的日期和时间类型:
DATE类型:表示日期,格式为YYYY-MM-DD。TIME类型:表示时间,格式为HH:MM:SS。DATETIME类型:表示日期和时间,格式为YYYY-MM-DD HH:MM:SS。TIMESTAMP类型:表示时间戳,格式为YYYY-MM-DD HH:MM:SS。
不同的数据库系统可能会有稍微不同的命名和实现方式,但基本概念是相同的。
二、使用 DATE_FORMAT() 函数
在 SQL 中,可以使用 DATE_FORMAT() 函数来格式化时间。它的语法如下:
DATE_FORMAT(date, format)
其中,date 是要格式化的日期或时间,format 是要使用的格式字符串。
下面是一些常见的格式字符串及其含义:
| 格式字符串 | 含义 | 示例 |
|---|---|---|
%Y |
年份,四位数字 | 2021 |
%y |
年份,两位数字 | 21 |
%m |
月份,两位数字 | 08 |
%d |
日,两位数字 | 05 |
%H |
小时,24小时制,两位数字 | 09 |
%h |
小时,12小时制,两位数字 | 09 |
%i |
分钟,两位数字 | 05 |
%s |
秒,两位数字 | 30 |
%W |
周几的完整英文名 | Friday |
%w |
周几的数字表示,0 表示周日,1 表示周一等 | 5 |
%M |
月份的完整英文名 | August |
%b |
月份的英文缩写 | Aug |
%c |
月份的数字表示,1 表示一月,2 表示二月等 | 8 |
%p |
AM 或 PM | AM |
下面是使用 DATE_FORMAT() 函数进行格式化的示例:
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_time;
运行结果如下:
formatted_time
-------------------
2021-08-05 09:05:30
三、使用 CAST() 函数
在某些数据库系统中,还可以使用 CAST() 函数将日期或时间类型转换为字符串类型,并结合字符串的处理函数进行格式化。
下面是使用 CAST() 函数进行格式化的示例:
SELECT
CONCAT(CAST(YEAR(NOW()) AS CHAR(4)), '-', LPAD(MONTH(NOW()), 2, '0'), '-', LPAD(DAY(NOW()), 2, '0'), ' ', LPAD(HOUR(NOW()), 2, '0'), ':', LPAD(MINUTE(NOW()), 2, '0'), ':', LPAD(SECOND(NOW()), 2, '0')) AS formatted_time;
运行结果如下:
formatted_time
-------------------
2021-08-05 09:05:30
四、使用字符串处理函数
在某些数据库系统中,也可以使用字符串处理函数来格式化时间。以下是一些常用的字符串处理函数:
SUBSTRING(str, pos, len):返回从str字符串的第pos个字符开始,长度为len的子字符串。LEFT(str, len):返回str字符串的左边len个字符。RIGHT(str, len):返回str字符串的右边len个字符。CONCAT(str1, str2, ...):将多个字符串拼接为一个字符串。LPAD(str, len, padstr):如果str字符串的长度小于len,则在左边填充padstr。RPAD(str, len, padstr):如果str字符串的长度小于len,则在右边填充padstr。
下面是使用字符串处理函数进行格式化的示例:
SELECT
CONCAT(
YEAR(NOW()), '-', LPAD(MONTH(NOW()), 2, '0'), '-', LPAD(DAY(NOW()), 2, '0'), ' ',
LPAD(HOUR(NOW()), 2, '0'), ':', LPAD(MINUTE(NOW()), 2, '0'), ':', LPAD(SECOND(NOW()), 2, '0')
) AS formatted_time;
运行结果如下:
formatted_time
-------------------
2021-08-05 09:05:30
五、总结
本文介绍了在 SQL 中进行时间格式化的常用方法。通过使用 DATE_FORMAT() 函数、CAST() 函数或字符串处理函数,可以满足不同的时间格式化需求。在实际应用中,可以根据具体的数据库系统和业务需求选择合适的方法。
极客笔记