介绍
SQL 日期格式转换是在 SQL 查询中经常使用的一个功能。将日期从一个格式转换为另一个格式是一个常见的任务,这可以在查询中通过使用日期函数来实现。本文将会介绍 SQL 中的日期函数,以及如何使用它们来格式化日期。
日期函数
1. DATEADD()
DATEADD() 可以将指定的日期加上或减去一定的时间间隔。例如,在查询中,我们需要获取当前日期的前一天或者前一年的日期,可以使用如下的语句:
SELECT DATEADD(day,-1,getdate()) AS yesterday
SELECT DATEADD(year,-1,getdate()) AS last_year
第一行代码的含义为:获取当前日期减去1天后的日期。
第二行代码的含义为:获取当前日期减去1年后的日期。
2. DATEDIFF()
DATEDIFF() 函数返回两个日期(时间)之间的时间差。例如,我们想要查找两个日期之间相差的天数,代码如下:
SELECT DATEDIFF(day,'2022-01-01','2022-01-09') AS days
上述代码的含义为: 获取 '2022-01-01' 和 '2022-01-09' 两个日期之间的时间差。
3. CONVERT()
CONVERT() 函数用于将一个日期类型(DATETIME)的数据格式转换为另一个数据类型。这个功能很实用,我们经常需要将日期格式化为另外一种格式以便在前端页面中显示。例如:
SELECT CONVERT(VARCHAR(10),getdate(),120) AS date1
该代码的含义是:将当前日期转换为 120 格式的日期字符形式。
4. FORMAT()
FORMAT() 函数可以让我们轻松地对日期进行格式化。例如:
SELECT FORMAT(getdate(),'yyyy-MM-dd HH:mm:ss') AS date2
该代码的含义是:将当前日期格式化为 yyyy-MM-dd HH:mm:ss 的字符串形式。
5. GETDATE()
GETDATE() 函数用于获取当前的日期时间。例如:
SELECT GETDATE() AS currentTime
该代码的含义是:获取当前的日期时间。
6. DAY(), MONTH(), YEAR()
DAY(), MONTH() 和 YEAR() 函数用于提取一个日期的日、月和年。例如,我们需要从日期中提取月份,可以使用如下代码:
SELECT MONTH(getdate()) AS currentMonth
该代码的含义是:获取当前日期的月份。
7. DATEPART()
DATEPART() 函数用于获取一个日期的某一部分(例如年、月、日)。例如:
SELECT DATEPART(day,getdate()) AS currentDay
该代码的含义是:获取当前日期的日。
8. DATENAME()
DATENAME() 函数用于获取日期的指定部分的名称。例如:
SELECT DATENAME(month,getdate()) AS currentMonth
该代码的含义是:获取当前日期的月份名称。
常见的日期格式化
在 SQL 查询中,我们可以使用以下格式器来快速格式化日期。
1. yyyy-MM-dd
该格式器将日期格式化为“年-月-日”的形式。例如:
SELECT CONVERT(VARCHAR(10), getdate(), 120) AS '年月日'
2. yyyy年MM月dd日
该格式器将日期格式化为“年月日”的形式。例如:
SELECT CONVERT(VARCHAR(10), getdate(), 23) AS '年月日'
3. yyyy-MM-dd HH:mm:ss
该格式器将日期格式化为“年-月-日 时:分:秒”的形式。例如:
SELECT CONVERT(VARCHAR(19), getdate(), 120) AS '年月日 时分秒'
4. yyyy年MM月dd日 HH:mm:ss
该格式器将日期格式化为“年月日 时:分:秒”的形式,组合形式是中文。例如:
SELECT CONVERT(VARCHAR(19), getdate(), 23) AS '年月日 时分秒'
5. MM-dd-yyyy
该格式器将日期格式化为“月-日-年”的形式。例如:
SELECT CONVERT(VARCHAR(10), getdate(), 101) AS '月日年'
6. MM/dd/yyyy
该格式器将日期格式化为“月/日/年”的形式。例如:
SELECT CONVERT(VARCHAR(10), getdate(), 101) AS '月/日/年'
7. HH:mm:ss
该格式器将日期格式化为“时:分:秒”的形式。例如:
SELECT CONVERT(VARCHAR(10), getdate(), 108) AS '时:分:秒'
8.yyyy-MM
该格式器将日期格式化为“年-月”的形式。例如:
SELECT CONVERT(VARCHAR(7), getdate(), 120) AS '年-月'
总结
本文介绍了在 SQL 中常用的日期函数和日期格式化方法。无论在工作还是在学习中,日期处理是一个必不可少的技能。通过这些函数和格式化方法,我们可以更加轻松地处理日期,提高开发效率。