搜索
首页数据库mysql教程SQL DateTime函数使用示例

文章总结了关于DateTime函数用法与数据转换以及简单的参考手册。

在T-SQL中经常会用到与DateTime相关的函数,现将常用函数做一下汇总,以备忘。

们经常出于某种目的需要使用各种各样的日期格式,当然我们可以使用字符串操作来构造各种日期格式,但是有现成的函数为什么不用呢?

SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm

例如:

select getdate()

2004-09-12 11:06:08.177

整理了一下SQL Server里面可能经常会用到的日期格式转换方法:

SQL  DAY() – MONTH( ) – YEAR()

DAY('2008-09-30') = 30

MONTH('2008-09-30') = 9

YEAR('2008-09-30') = 2008

 

SQL DATEPART()

DATEPART(day, '2008-09-30 11:35:00.1234567') = 30

DATEPART(month, '2008-09-30 11:35:00.1234567') =9

DATEPART(year, '2008-09-30 11:35:00.1234567') = 2008

DATEPART(hour, '2008-09-30 11:35:00.1234567') = 11

DATEPART(minute, '2008-09-30 11:35:00.1234567') = 35

DATEPART(second, '2008-09-30 11:35:00.1234567') = 0

DATEPART(quarter, '2008-09-30 11:35:00.1234567') = 3

DATEPART(dayofyear, '2008-09-30 11:35:00.1234567') =273

DATEPART(week, '2008-09-30 11:35:00.1234567') = 40

DATEPART(weekday, '2008-09-30 11:35:00.1234567') =7

DATEPART(millisecond, '2008-09-30 11:35:00.1234567') =123

DATEPART(microsecond, '2008-09-30 11:35:00.1234567') = 123456

DATEPART(nanosecond, '2008-09-30 11:35:00.1234567') = 123456700

DATEPART(tzoffset, '2008-09-30 11:35:00.1234567 -07:00') = -420

 

SQL DATEADD()

DATEADD(day, 1, '2008-09-30 11:35:00') =  2008-10-30  01:35:00.000

DATEADD(month, 1, '2008-09-30 11:35:00') = 2008-10-30  11:35:00.000

DATEADD(year, 1, '2008-09-30 11:35:00') = 2009-09-30  11:35:00.000

DATEADD(hour, 1, '2008-09-30 11:35:00') = 2008-09-30  12:35:00.000

DATEADD(minute, 1, '2008-09-30 11:35:00') = 2008-09-30  11:36:00.000

DATEADD(second, 1, '2008-09-30 11:35:00') = 2008-09-30  11:35:01.000

DATEADD(quarter, 1, '2008-09-30 11:35:00') =2008-12-30  11:35:00.000

DATEADD(week, 1, '2008-09-30 11:35:00') = 2008-10-07  11:35:00.000

DATEADD(month, -1, '2008-09-30 11:35:00') = 2008-08-30  11:35:00.000

DATEADD(year, 1.5 , '2008-09-30 11:35:00') = 2009-09-30 11:35:00.000

 

SQL  DATENAME()

DATENAME(day, '2008-09-30 11:35:00.1234567') = 30

DATENAME(month, '2008-09-30 11:35:00.1234567') =September

DATENAME(year, '2008-09-30 11:35:00.1234567') = 2008

DATENAME(hour, '2008-09-30 11:35:00.1234567') = 11

DATENAME(minute, '2008-09-30 11:35:00.1234567') = 35

DATENAME(second, '2008-09-30 11:35:00.1234567') = 0

DATENAME(quarter, '2008-09-30 11:35:00.1234567') = 3

DATENAME(dayofyear, '2008-09-30 11:35:00.1234567') =273

DATENAME(week, '2008-09-30 11:35:00.1234567') = 40

DATENAME(weekday, '2008-09-30 11:35:00.1234567') =Saturday

DATENAME(millisecond, '2008-09-30 11:35:00.1234567') =123

DATENAME(microsecond, '2008-09-30 11:35:00.1234567') = 123456

DATENAME(nanosecond, '2008-09-30 11:35:00.1234567') = 123456700

DATENAME(tzoffset, '2008-09-30 11:35:00.1234567 -07:00') = -07:00

 

SQL DATEDIFF()

DATEDIFF(day, '2007-12-01' , '2008-09-30') = 303

DATEDIFF(month, '2007-12-01' , '2008-09-30') = 9

DATEDIFF(year, '2007-12-01' , '2008-09-30') = 1

DATEDIFF(hour, '06:46:45' , '11:35:00') =  5

DATEDIFF(minute, '06:46:45' , '11:35:00') =  289

DATEDIFF(second, '06:46:45' , '11:35:00') =  17295

DATEDIFF(quarter, '2007-12-01' , '2008-09-30') =  3

DATEDIFF(week, '2007-12-01' , '2008-09-30') =  44

DATEDIFF(hour, '2008-09-30' , '2007-12-01') =  -303

 

SOME OTHER SQL DATE/TIME  RELATED FUNCTIONS

GETDATE()

GETUTCDATE()

SYSDATETIME()

SYSUTCDATETIME()

SYSUTCDATETIMEOFFSET()

DATEADD(datepart,NUMBER,date)

DATEADIFF(datepart, startdate,enddate)

TODATETIMEOFFSET(datetime2,tzoffset)

SWITCHOFFSET(datetimeoffset,tzoffest)

ISDATE(expression)

 

Adding to this - Calculate no of Days between two dates excluding Weekends.

DECLARE @StartDate DATETIME
DECLARE @EndDate DATETIME
SET @StartDate = '2010/05/01'
SET @EndDate = '2010/05/11'
 

SELECT (DATEDIFF(dd, @StartDate, @EndDate) + 1)-(DATEDIFF(wk, @StartDate, @EndDate) * 2)
  -(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)-(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END)     -- 7

Without century (yy) With century (yyyy)
Standard

Input/Output**
- 0 or 100 (*) Default mon dd yyyy hh:miAM (or PM)
1 101 USA mm/dd/yy
2 102 ANSI yy.mm.dd
3 103 British/French dd/mm/yy
4 104 German dd.mm.yy
5 105 Italian dd-mm-yy
6 106 - dd mon yy
7 107 - Mon dd, yy
8 108 - hh:mm:ss
- 9 or 109 (*) Default + milliseconds mon dd yyyy hh:mi:ss:mmmAM (or PM)
10 110 USA mm-dd-yy
11 111 JAPAN yy/mm/dd
12 112 ISO yymmdd
- 13 or 113 (*) Europe default + milliseconds dd mon yyyy hh:mm:ss:mmm(24h)
14 114 - hh:mi:ss:mmm(24h)
- 20 or 120 (*) ODBC canonical yyyy-mm-dd hh:mi:ss(24h)
- 21 or 121 (*) ODBC canonical (with milliseconds) yyyy-mm-dd hh:mi:ss.mmm(24h)
- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(no spaces)
- 130* Kuwaiti dd mon yyyy hh:mi:ss:mmmAM
- 131* Kuwaiti dd/mm/yy hh:mi:ss:mmmAM

举例如下:

select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608

select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )
20040912

select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12

select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )
11:06:08

select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177

 

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询Aug 26, 2022 pm 02:07 PM

本篇文章给大家带来了关于SQL的相关知识,其中主要介绍了SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询的方法,文中通过示例代码介绍的非常详细,下面一起来看一下,希望对大家有帮助。

SQL Server解析/操作Json格式字段数据的方法实例SQL Server解析/操作Json格式字段数据的方法实例Aug 29, 2022 pm 12:00 PM

本篇文章给大家带来了关于SQL server的相关知识,其中主要介绍了SQL SERVER没有自带的解析json函数,需要自建一个函数(表值函数),下面介绍关于SQL Server解析/操作Json格式字段数据的相关资料,希望对大家有帮助。

聊聊优化sql中order By语句的方法聊聊优化sql中order By语句的方法Sep 27, 2022 pm 01:45 PM

如何优化sql中的orderBy语句?下面本篇文章给大家介绍一下优化sql中orderBy语句的方法,具有很好的参考价值,希望对大家有所帮助。

Monaco Editor如何实现SQL和Java代码提示?Monaco Editor如何实现SQL和Java代码提示?May 07, 2023 pm 10:13 PM

monacoeditor创建//创建和设置值if(!this.monacoEditor){this.monacoEditor=monaco.editor.create(this._node,{value:value||code,language:language,...options});this.monacoEditor.onDidChangeModelContent(e=>{constvalue=this.monacoEditor.getValue();//使value和其值保持一致i

一文搞懂SQL中的开窗函数一文搞懂SQL中的开窗函数Sep 02, 2022 pm 04:55 PM

本篇文章给大家带来了关于SQL server的相关知识,开窗函数也叫分析函数有两类,一类是聚合开窗函数,一类是排序开窗函数,下面这篇文章主要给大家介绍了关于SQL中开窗函数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下。

如何使用exp进行SQL报错注入如何使用exp进行SQL报错注入May 12, 2023 am 10:16 AM

0x01前言概述小编又在MySQL中发现了一个Double型数据溢出。当我们拿到MySQL里的函数时,小编比较感兴趣的是其中的数学函数,它们也应该包含一些数据类型来保存数值。所以小编就跑去测试看哪些函数会出现溢出错误。然后小编发现,当传递一个大于709的值时,函数exp()就会引起一个溢出错误。mysql>selectexp(709);+-----------------------+|exp(709)|+-----------------------+|8.218407461554972

springboot配置mybatis的sql执行超时时间怎么解决springboot配置mybatis的sql执行超时时间怎么解决May 15, 2023 pm 06:10 PM

当某些sql因为不知名原因堵塞时,为了不影响后台服务运行,想要给sql增加执行时间限制,超时后就抛异常,保证后台线程不会因为sql堵塞而堵塞。一、yml全局配置单数据源可以,多数据源时会失效二、java配置类配置成功抛出超时异常。importcom.alibaba.druid.pool.DruidDataSource;importcom.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;importorg.apache.

Monaco Editor怎么实现SQL和Java代码提示Monaco Editor怎么实现SQL和Java代码提示May 11, 2023 pm 05:31 PM

monacoeditor创建//创建和设置值if(!this.monacoEditor){this.monacoEditor=monaco.editor.create(this._node,{value:value||code,language:language,...options});this.monacoEditor.onDidChangeModelContent(e=>{constvalue=this.monacoEditor.getValue();//使value和其值保持一致i

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)