当前位置: 首页 > news >正文

sqlserver 主要的日期函数及用法示例

SQL Server 主要日期函数及用法示例

1. 获取当前日期和时间

sql
SELECT GETDATE() AS CurrentDateTime,           -- 当前日期时间GETUTCDATE() AS CurrentUTCDateTime,     -- 当前UTC时间SYSDATETIME() AS SystemDateTime,        -- 更高精度的系统时间CURRENT_TIMESTAMP AS CurrentTimestamp;  -- ANSI SQL标准写法

2. 日期部分提取

sql
SELECT YEAR(GETDATE()) AS YearPart,MONTH(GETDATE()) AS MonthPart,DAY(GETDATE()) AS DayPart,DATEPART(YEAR, GETDATE()) AS YearUsingDatepart,DATEPART(QUARTER, GETDATE()) AS Quarter,DATEPART(WEEK, GETDATE()) AS WeekNumber,DATEPART(WEEKDAY, GETDATE()) AS Weekday,DATEPART(HOUR, GETDATE()) AS HourPart,DATEPART(MINUTE, GETDATE()) AS MinutePart;

3. 日期加减计算

sql
SELECT -- 加减天数DATEADD(DAY, 1, GETDATE()) AS Tomorrow,DATEADD(DAY, -1, GETDATE()) AS Yesterday,-- 加减月份DATEADD(MONTH, 1, GETDATE()) AS NextMonth,DATEADD(MONTH, -1, GETDATE()) AS LastMonth,-- 加减年份DATEADD(YEAR, 1, GETDATE()) AS NextYear,DATEADD(YEAR, -1, GETDATE()) AS LastYear,-- 加减小时DATEADD(HOUR, 2, GETDATE()) AS TwoHoursLater;

4. 日期差异计算

sql
DECLARE @StartDate DATETIME = '2023-01-01';
DECLARE @EndDate DATETIME = '2023-12-31';SELECT DATEDIFF(DAY, @StartDate, @EndDate) AS DaysDifference,DATEDIFF(MONTH, @StartDate, @EndDate) AS MonthsDifference,DATEDIFF(YEAR, @StartDate, @EndDate) AS YearsDifference,DATEDIFF(WEEK, @StartDate, @EndDate) AS WeeksDifference,DATEDIFF(HOUR, @StartDate, @EndDate) AS HoursDifference;

5. 日期格式转换

sql
SELECT -- 转换为字符串CONVERT(VARCHAR, GETDATE(), 120) AS Format_120,      -- yyyy-mm-dd hh:mi:ssCONVERT(VARCHAR, GETDATE(), 112) AS Format_112,      -- yyyymmddCONVERT(VARCHAR, GETDATE(), 23) AS Format_23,        -- yyyy-mm-ddCONVERT(VARCHAR, GETDATE(), 101) AS Format_101,      -- mm/dd/yyyyCONVERT(VARCHAR, GETDATE(), 103) AS Format_103,      -- dd/mm/yyyy-- 格式化为更友好的格式FORMAT(GETDATE(), 'yyyy-MM-dd') AS FormattedDate1,FORMAT(GETDATE(), 'dd/MM/yyyy HH:mm:ss') AS FormattedDate2,FORMAT(GETDATE(), 'MMMM dd, yyyy') AS FormattedDate3;

6. 日期部分获取和设置

sql
SELECT -- 获取日期名称DATENAME(YEAR, GETDATE()) AS YearName,DATENAME(MONTH, GETDATE()) AS MonthName,DATENAME(WEEKDAY, GETDATE()) AS WeekdayName,-- 从日期创建新日期DATEFROMPARTS(2023, 12, 25) AS Christmas2023,DATETIMEFROMPARTS(2023, 12, 25, 18, 30, 0, 0) AS ChristmasTime,-- 获取月份的第一天和最后一天DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) AS FirstDayOfMonth,EOMONTH(GETDATE()) AS LastDayOfMonth,EOMONTH(GETDATE(), 1) AS LastDayOfNextMonth;

7. 日期验证和判断

sql
SELECT -- 检查日期有效性ISDATE('2023-02-29') AS IsValidDate1,  -- 0 (2023不是闰年)ISDATE('2024-02-29') AS IsValidDate2,  -- 1 (2024是闰年)-- 判断工作日(需要自定义逻辑)CASE WHEN DATEPART(WEEKDAY, GETDATE()) IN (1, 7) THEN 'Weekend'ELSE 'Weekday'END AS DayType;

8. 实用日期查询示例

sql
-- 查询今天的数据
SELECT * FROM Orders WHERE CAST(OrderDate AS DATE) = CAST(GETDATE() AS DATE);-- 查询最近7天的数据
SELECT * FROM Orders 
WHERE OrderDate >= DATEADD(DAY, -7, CAST(GETDATE() AS DATE))AND OrderDate < DATEADD(DAY, 1, CAST(GETDATE() AS DATE));-- 查询本月的数据
SELECT * FROM Orders 
WHERE OrderDate >= DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1)AND OrderDate < DATEADD(MONTH, 1, DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1));-- 计算年龄
SELECT DATEDIFF(YEAR, BirthDate, GETDATE()) - CASE WHEN DATEADD(YEAR, DATEDIFF(YEAR, BirthDate, GETDATE()), BirthDate) > GETDATE() THEN 1 ELSE 0 END AS Age
FROM Employees;

9. 时间部分操作

sql
SELECT -- 获取时间部分CAST(GETDATE() AS TIME) AS TimePart,-- 设置特定时间DATEADD(HOUR, 9, CAST(CAST(GETDATE() AS DATE) AS DATETIME)) AS Today9AM,-- 计算时间差(分钟)DATEDIFF(MINUTE, '09:00', '17:30') AS WorkMinutes;

这些函数涵盖了 SQL Server 中日期时间处理的主要场景,可以根据具体需求选择合适的函数组合使用。

 
 
 
 
 
 
 
 
 
 
http://www.zskr.cn/news/26684.html

相关文章:

  • 图论刷题记录
  • 英语_备忘_疑难
  • 「JOISC2020-掃除」题解
  • CF简单构造小计
  • 软件工程第三次作业:四则运算题目生成器 - Nyanya-
  • Linux7种文件类型
  • AI代码生成技术解析与应用实践
  • 银河麒麟Kylin申威SW64系统安装 rpcbind-1.2.5-2.p01.ky10.sw_64.rpm 方法
  • 题解:P12525 [Aboi Round 1] 私は雨
  • 杂谈
  • 定位问题3:明明堆栈已经打印出来了,偏就是定位不出来?
  • 鸿蒙hdc命令【杭州多测师】
  • 电脑黑屏只剩鼠标-解决方案 - 教程
  • leetcode448. 找到所有数组中消失的数字
  • 揭开 C++ vector 底层面纱:从三指针模型到手写完整实现 - 指南
  • Java中的注释
  • 2025年栏杆护栏厂家权威推荐榜:不锈钢栏杆、桥梁防撞护栏、河道景观护栏专业制造商精选
  • Day1标签语法
  • home-assistant-Concepts and terminology概念和术语
  • 2025年定型机厂家推荐排行榜,拉幅定型机,门富士定型机,节能定型机,余热回收,废气回收,烟气回收,智能排风,双层定型机公司推荐
  • 有关K8s calico IPIP模式的一些疑惑和思考
  • UMDF驱动开发入门:创建虚拟设备,从安装到I/O交互全解析
  • 从零开始,搭建自己的AI平台写小说
  • 2025年AI优化公司电话推荐:十家可验证服务商沟通备忘
  • 2025深圳离婚律所电话推荐:家理律所福田诺德中心25楼
  • 2025年深圳离婚律所电话推荐:家理福田诺德中心婚姻家事专线
  • 生日
  • 2025年润滑油厂家权威推荐榜:工业润滑油,汽车润滑油,发动机润滑油,甲醇发动机润滑油,全合成润滑油,长效发动机润滑油品牌深度解析
  • 2025固定资产管理系统电话推荐:公贝资产全周期管理方案
  • 如果使用 vxe-table 实现全键盘操作,按键切换复选框单选框的选中状态