MSSQL查询详解:让时间日期变得简单

介绍

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查询变得更加简单、高效。

数据库标签