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

SQLserver中的日期时间

在 SQL Server 中,日期和时间数据类型用于存储日期和时间信息。这些数据类型包括 DATETIMEDATETIMEDATETIME2DATETIMEOFFSET。每种类型都有其特定的用途和存储格式。

1. DATE

  • 用途:用于存储日期信息,格式为 YYYY-MM-DD。

  • 存储大小:3 字节。

  • 范围:0001-01-01 到 9999-12-31。

2. TIME

  • 用途:用于存储时间信息,不包含日期部分。

  • 存储大小:3-5 字节(取决于精度)。

  • 范围:00:00:00.0000000 到 23:59:59.9999999。

3. DATETIME

  • 用途:用于存储日期和时间信息。

  • 存储大小:8 字节。

  • 范围:1753-01-01 到 9999-12-31 23:59:59.997。

4. DATETIME2

  • 用途:用于存储日期和时间信息,比 DATETIME 提供更高的精度和范围。

  • 存储大小:6-8 字节(取决于精度)。

  • 范围:0001-01-01 00:00:00.0000000 到 9999-12-31 23:59:59.9999999。

5. DATETIMEOFFSET

  • 用途:用于存储日期和时间信息,包含时区偏移量。

  • 存储大小:8-10 字节(取决于精度)。

  • 范围:0001-01-01 00:00:00.0000000 +- 14:00 到 9999-12-31 23:59:59.9999999 +- 14:00。

常用函数

SQL Server 提供了许多用于处理日期和时间的函数,以下是一些常用的:

  • GETDATE():返回当前日期和时间。

  • DATEADD():向日期添加指定的时间间隔。

  • DATEDIFF():计算两个日期之间的差异。

  • DATENAME():返回日期部分的名称,如年、月、日等。

  • DATEPART():返回日期的特定部分,如年、月、日等。

  • CONVERT():将日期和时间转换为不同的格式。

示例

  1. 插入当前日期和时间

INSERT INTO YourTable (DateTimeColumn)
VALUES (GETDATE());
  1. 计算日期差

SELECT DATEDIFF(day, '2024-01-01', GETDATE()) AS DaysSinceStartOfYear;
  1. 添加天数到日期

SELECT DATEADD(day, 10, '2024-08-01') AS NewDate;
  1. 格式化日期

SELECT CONVERT(VARCHAR, GETDATE(), 120) AS FormattedDate; -- 120 表示 yyyy-mm-dd hh:mi:ss(24h)
  1. 提取日期部分

SELECT DATENAME(year, GETDATE()) AS Year,DATENAME(month, GETDATE()) AS Month,DATENAME(day, GETDATE()) AS Day;

注意事项

  • 当处理日期和时间时,确保考虑时区和夏令时的影响。

  • 在进行日期运算时,了解不同数据类型之间的差异和限制。

  • 使用 DATETIME2DATETIMEOFFSET 可以避免 DATETIME 的一些精度限制。

常用的格式化日期

在 SQL Server 中,格式化日期和时间数据通常使用 CONVERT 函数或 FORMAT 函数。以下是一些常用的日期格式化示例:

使用 CONVERT 函数

CONVERT 函数可以将日期和时间数据转换为不同的格式。格式代码决定了输出的样式。

  • 格式代码 120yyyy-mm-dd hh:mi:ss(24h)(24小时制)

    SELECT CONVERT(varchar, GETDATE(), 120) AS FormattedDate;

  • 格式代码 101mm/dd/yyyy

    SELECT CONVERT(varchar, GETDATE(), 101) AS FormattedDate;

  • 格式代码 103dd/mm/yyyy hh:mi:ss(24h)

    SELECT CONVERT(varchar, GETDATE(), 103) AS FormattedDate;

  • 格式代码 104dd-mm-yyyy

    SELECT CONVERT(varchar, GETDATE(), 104) AS FormattedDate;

  • 格式代码 105hh:mi:ss(24h)

    SELECT CONVERT(varchar, GETDATE(), 105) AS FormattedTime;

  • 格式代码 110yyyy-mm-dd

    SELECT CONVERT(varchar, GETDATE(), 110) AS FormattedDate;

  • 格式代码 112yyyy/mm/dd

    SELECT CONVERT(varchar, GETDATE(), 112) AS FormattedDate;

  • 格式代码 120yyyy-mm-dd hh:mi:ss(24h)

    SELECT CONVERT(varchar, GETDATE(), 120) AS FormattedDateTime;

使用 FORMAT 函数

FORMAT 函数提供了更灵活的日期和时间格式化选项,允许你指定自定义格式字符串。

  • 自定义格式

    SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss');

  • 输出为日期

    SELECT FORMAT(GETDATE(), 'yyyy-MM-dd');

  • 输出为时间

    SELECT FORMAT(GETDATE(), 'HH:mm:ss');

  • 输出为星期几

    SELECT FORMAT(GETDATE(), 'dddd, dd MMMM yyyy');

  • 输出为特定文化格式

    SELECT FORMAT(GETDATE(), 'fulldate', 'de-DE'); -- 德国日期格式

注意事项

  • FORMAT 函数比 CONVERT 函数提供了更多的灵活性和自定义选项。

  • FORMAT 函数返回的是 nvarchar 类型的数据。

  • 使用 FORMAT 函数时,你可以指定文化信息来获取特定地区格式的日期和时间。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 牛津大学发布首篇《Transformer多模态学习》综述论文,23页pdf涵盖310篇文献全面阐述MMT的理论与应用
  • 智能废弃瓶子垃圾箱:城市环境的绿色守护者
  • javascript语句之switch
  • 鸿蒙(API 12 Beta3版)【使用ImagePacker完成图片编码】图片开发指导
  • Prompt + 工作流组件 = AI智能体:开启智能化新时代
  • SBB | 南京林业大学阮宏华团队揭示人工林发育过程中土壤有机碳积累的主要机制
  • 【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(十四)
  • 若依权限控制前端+后端实现思路梳理(PreAuthorize、hasPermi、v-hasPermi)
  • vivo手机短信删除了怎么恢复?恢复办法分享
  • Java 中的抽象工厂模式:优雅地掌握对象创建
  • vc矩阵计算(转置,点乘,逆矩阵)
  • 掌握PyTorch模型的版本控制:高效管理与迭代
  • MQ-2烟雾传感器模块功能实现(STM32)
  • 本地部署docker文档
  • min(n,k)*min(m,k)
  • 【comparator, comparable】小总结
  • Centos6.8 使用rpm安装mysql5.7
  • css布局,左右固定中间自适应实现
  • HTTP请求重发
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Intervention/image 图片处理扩展包的安装和使用
  • Java 最常见的 200+ 面试题:面试必备
  • js对象的深浅拷贝
  • learning koa2.x
  • PAT A1120
  • vue-router 实现分析
  • 阿里云前端周刊 - 第 26 期
  • 程序员该如何有效的找工作?
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 我是如何设计 Upload 上传组件的
  • 自制字幕遮挡器
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 进程与线程(三)——进程/线程间通信
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • $.ajax中的eval及dataType
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (145)光线追踪距离场柔和阴影
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (C#)获取字符编码的类
  • (Charles)如何抓取手机http的报文
  • (C语言)逆序输出字符串
  • (javascript)再说document.body.scrollTop的使用问题
  • (vue)页面文件上传获取:action地址
  • (搬运以学习)flask 上下文的实现
  • (超详细)语音信号处理之特征提取
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (十一)c52学习之旅-动态数码管
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .Net mvc总结
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 漏洞分析 | 某ERP系统存在SQL注入