介绍
SQL是关系型数据库的标准化查询语言,现在广泛应用于各种数据库管理系统中。Microsoft SQL Server(MSSQL)是一种常用的关系型数据库管理系统,支持多种操作系统和编程语言。本文主要介绍MSSQL中如何查询日期时间数据,让时间日期变得简单。
日期数据类型
MSSQL中有多种日期时间数据类型,常用的有:
DATETIME:存储日期和时间,精确到秒
DATE:仅存储日期,不含时间
SMALLDATETIME:存储日期和时间,精确到分
TIME:仅存储时间,不含日期
日期时间格式化
在MSSQL中,可以使用CONVERT函数将日期时间数据格式化为指定的字符串格式。常用的格式如下:
-- 将DATETIME类型格式化为字符串,格式为yyyy-mm-dd hh:mi:ss
SELECT CONVERT(varchar, GETDATE(), 120);
-- 将DATE类型格式化为字符串,格式为yyyy-mm-dd
SELECT CONVERT(varchar, GETDATE(), 23);
-- 将SMALLDATETIME类型格式化为字符串,格式为yyyy-mm-dd hh:mi
SELECT CONVERT(varchar, GETDATE(), 120);
-- 将TIME类型格式化为字符串,格式为hh:mi:ss
SELECT CONVERT(varchar, GETDATE(), 108);
注意:在日期时间格式化时,要使用正确的格式代码,否则会导致数据格式错误。
日期时间函数
MSSQL提供了多种日期时间函数,可以对日期时间数据进行加、减、比较等操作。
DATEADD
DATEADD函数可以将一个日期时间值加上指定的时间间隔。
-- 将当前日期加上10天
SELECT DATEADD(day, 10, GETDATE());
-- 将当前日期加上1年
SELECT DATEADD(year, 1, GETDATE());
-- 将当前日期加上5分钟
SELECT DATEADD(minute, 5, GETDATE());
DATEDIFF
DATEDIFF函数可以计算两个日期时间值之间的时间差。
-- 计算两个日期之间相差的天数
SELECT DATEDIFF(day, '2021-01-01', '2022-01-01');
-- 计算两个日期之间相差的小时数
SELECT DATEDIFF(hour, '2021-01-01 12:00:00', '2021-01-02 12:00:00');
-- 计算两个日期之间相差的分钟数
SELECT DATEDIFF(minute, '2021-01-01 12:00:00', '2021-01-01 13:30:00');
DATEPART
DATEPART函数可以从一个日期时间值中返回指定的部分。
-- 返回当前日期的年份
SELECT DATEPART(year, GETDATE());
-- 返回当前时间的小时数
SELECT DATEPART(hour, GETDATE());
-- 返回当前日期的月份
SELECT DATEPART(month, GETDATE());
GETDATE
GETDATE函数可以返回当前的日期时间。
-- 返回当前日期时间
SELECT GETDATE();
总结
日期时间数据在数据库管理中十分重要,MSSQL提供了多种日期时间函数和数据类型,可以方便地对日期时间数据进行处理。熟练掌握这些技能可以让您的SQL查询变得更加简单、高效。