日期和时间数据类型
数据类型

存储(字节)

日期范围 精确度 格式示例
DateTime 8 1753年1月1日 - 9999年12月31日 3 1/3毫秒 yyyy-MM-dd hh:mm:ss.nnn
smalldatetime 4 1900年1月1日 - 2079年6月6日 1分钟 yyyy-MM-dd hh:mm
date 3 0001年1月1日 - 9999月12月31日 1天 yyyy-MM-dd
time 3-5 N/A 100纳秒 hh:mm:ss.nnnnnnn
DateTime2 6-8 0001年1月1日 - 9999年12月31日 100纳秒 yyyy-MM-dd hh:mm:ss.nnnnnnn
Datetimeoffset 8-10 0001年1月1日 -- 9999年12月31日 100纳秒 yyyy-MM-dd hh:mm:ss.nnnnnnn

-- 1、时间和日期函数 除了CURRENT_TIMESTAMP 函数不置顶小括号"()";其他的函数都需要制定小括号

select GETDATE() --返回当前时间
select CURRENT_TIMESTAMP -- 等同于getdate(),但是遵循ANSI SQL
select GETUTCDATE() -- 返回UTC日期和时间(协调世界时 )
select SYSDATETIME() -- 当前日期和时间
select SYSUTCDATETIME() -- 当前UTC日期和时间(协调世界时)
select SYSDATETIMEOFFSET() -- 包含时区偏移量的当前日期时间

-- 2、cast、convert函数,及其Try_对应函数 TRY_函数在SQL Sever2012开始支持
-- cast、convert函数用于将输入值转换为目标类型,如果转换成功输出转换的值,否则报错;
-- try_cast、try_convert函数;两个个try_函数与其对应的函数功能作用一样,不同的是如果不能讲输入的值转换为指定类型,函数返回NULL.

select CAST('20160628' AS DATE)
select TRY_CAST('20160628' AS DATE)

select CAST('123456' as DATE)
select Try_CAST('123456' as DATE)

select CONVERT(char(10),GETDATE(),120)
select Try_CONVERT(char(10),GETDATE(),120)

select CONVERT(int,'123acb')
select Try_CONVERT(int,'123acb')

-- 3、switchoffset函数将输入的datetimeoffset时间调整为指定的时区时间
select switchoffset(sysdatetimeoffset(),'-05:00') --查询-05:00 时区时间
select SWITCHOFFSET(SYSDATETIMEOFFSET(),'+00:00') --查询UTC时间

-- 4、Todatetimeoffset函数;设置输入的日期和时间值得时区偏移量
select TODATETIMEOFFSET(SYSDATETIMEOFFSET(),-10)

-- 5、DateAdd函数;允许为指定的日期部分增加一个指定的单位的单位数量到输入的日期和时间值中。
select DATEADD(YEAR,1,'2016-06-28') --指定日期加1年 2017-06-28
select DATEADD(QUARTER,1,'2016-06-28') --指定日期加3个月206-09-28
select DATEADD(MONTH,-1,'2016-06-28') --指定日期减1个月2016-05-28
select DATEADD(DAY,1,'2016-06-28') --指定日期加1天2016-06-29
select DATEADD(WEEK,1,'2016-06-28') --指定日期加7天2016-07-05
select DATEADD(HOUR,1,'2016-06-28 21:00:00.000') -- 指定时间加1小时 2016-06-28 22:00:00.000
select DATEADD(MINUTE,1,'2016-06-28 21:00:00.000') -- 指定时间加1分钟 2016-06-28 21:01:00.000
select DATEADD(SECOND,1,'2016-06-28 21:00:00.000') -- 指定时间加1秒钟 2016-06-28 21:00:01.000
select DATEADD(MILLISECOND,10,'2016-06-28 21:00:00.000') --指定时间加10毫秒 2016-06-28 21:00:00.010

-- 6、DateDiff(part,val1,val2)函数;返回val2-val1返回指定单位的数量
select DateDiff(YEAR,'2011-06-28','2017-06-28')
select DateDiff(QUARTER,'2016-03-28','2016-06-28')
select DateDiff(MONTH,'2016-05-28','2016-06-28')
select DateDiff(DAY,'2016-06-27','2016-06-28')
select DateDiff(WEEK,'2016-06-21','2016-06-28')
select DateDiff(HOUR,'2016-06-28 20:00:00.000','2016-06-28 21:00:00.000')
select DateDiff(MINUTE,'2016-06-28 21:01:00.000','2016-06-28 21:00:00.000')
select DateDiff(SECOND,'2016-06-28 21:00:01.000','2016-06-28 21:00:00.000')
select DateDiff(MILLISECOND,'2016-06-28 21:00:00.001','2016-06-28 21:00:00.000')

-- 7、datepart函数;返回一个日期或时间部分的整数部分;
select DATEPART(YEAR,'2016-06-28')
select DATEPART(MONTH,'2016-06-28')
select DATEPART(WEEK,'2016-06-28')
select DATEPART(DAY,'2016-06-28')
select DATEPART(HOUR,'2016-06-28 21:01:02')
select DATEPART(MINUTE,'2016-06-28 21:01:02')
select DATEPART(SECOND,'2016-06-28 21:01:02')
select DATEPART(MILLISECOND,'2016-06-28 21:01:02:100')

-- 8、year、month和day函数;和datepart函数一样;返回年、月、日期的整数
select YEAR('2016-06-28')
select month('2016-06-28')
select day('2016-06-28')

-- 9、datename函数;与datepart类似;但是返回的不是数字而是名称,根据操作系统的语言返回指定的日期名称;例如英文操作系统中 DATENAME(MONTH,'2016-06-28') 返回june
select DATENAME(year,'2016-06-28')
select DATENAME(MONTH,'2016-06-28')
select DATENAME(DAY,'2016-06-28')
select DATENAME(HOUR,'2016-06-28 21:01:02')
select DATENAME(MINUTE,'2016-06-28 21:01:02')
select DATENAME(SECOND,'2016-06-28 21:01:02')
select DATENAME(MILLISECOND,'2016-06-28 21:01:02:100')

-- 10、isdate函数;判断输入的字符串是否能转换为日期或时间;true 为1;false为0
select ISDATE('2016-06-28') --true
select ISDATE('2016-06-282') --false

select ISDATE('2016-06-28 21:00:00.000') --true
select ISDATE('2016-06-28 21:00:00.0000') --false

MS SQL Server 时间函数的更多相关文章

  1. MS SQL Server时间常用函数

    SQLServer时间日期函数详解,SQLServer,时间日期, 1.      当前系统日期.时间 select getdate() 2. dateadd      在向指定日期加上一段时间的基础 ...

  2. SQL SERVER时间函数

    本篇文章还是学习<程序员的SQL金典>内容的记录,此次将讲解的是SQL SERVER的时间函数. 本文只讲SQL SERVER支持的时间函数(其它数据库这里就不罗列了,想看更多的可以关注& ...

  3. SQL Server ->> 时间函数: EOMONTH, DATEFROMPARTS, TIMEFROMPARTS, DATETIMEFROMPARTS, DATETIMEOFFSETFROMPARTS

    上面几个函数都是SQL Server 2012新增的时间函数. EOMONTH 返回传入时间的月结束日,返回数据类型为DATE SELECT EOMONTH(GETDATE()) 结果为 DATEFR ...

  4. 查看ms SQL Server存储过程,函数的内容

    方法1:最简单的,右键单击要查看的存储过程,选择“修改”: 方法2: SELECT definition FROM solar.sys.sql_modules WHERE [object_id]=(O ...

  5. iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】

    iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post). Oracle设置 <!-- Oracle SE ...

  6. 数据库开发基础-SQl Server 聚合函数、数学函数、字符串函数、时间日期函数

    SQL 拥有很多可用于计数和计算的内建函数. 函数的语法 内建 SQL 函数的语法是: SELECT function(列) FROM 表 函数的类型 在 SQL 中,基本的函数类型和种类有若干种.函 ...

  7. MS SQL Server中数据表、视图、函数/方法、存储过程是否存在判断及创建

    前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候 ...

  8. (转载)MS SQL Server 未公开的加密函数有哪些?

    MS SQL Server 未公开的加密函数有哪些? 以下的文章是对MS SQL Server 未公开的加密函数的具体操作,如果你对其相关的实际操作有兴趣的话,你就可以点击了. MS SQL Serv ...

  9. MS SQL Server的LTRIM,RTRIM和TRIM函数

    在MS SQL Server 2017有了一个新函数TRIM,整合以前版本LTRIM和RTRIM. 这几个函数都是去除字符串头部后尾部的空格. DECLARE @str NVARCHAR(MAX) = ...

随机推荐

  1. 在 .NET Core 中结合 HttpClientFactory 使用 Polly(下篇)

    译者:王亮作者:Polly 团队原文:http://t.cn/EhZ90oq声明:我翻译技术文章不是逐句翻译的,而是根据我自己的理解来表述的(包括标题).其中可能会去除一些不影响理解但本人实在不知道如 ...

  2. C#中使用JavaScriptSerializer类实现序列化与反序列化

    1.添加引用 JavaScriptSerializer类的使用需要引用System.Web.Extensions.dll文件,根据路径:C:\Program Files (x86)\Reference ...

  3. 使用 Python 爬取网页数据

    1. 使用 urllib.request 获取网页 urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 ...

  4. cglib 代理实现

    cglib代理的原理是通过继承实现对目标对象的代理 //1.接口 package cn.itcast.service; public interface UserService { void save ...

  5. [模板] 最近公共祖先/lca

    简介 最近公共祖先 \(lca(a,b)\) 指的是a到根的路径和b到n的路径的深度最大的公共点. 定理. 以 \(r\) 为根的树上的路径 \((a,b) = (r,a) + (r,b) - 2 * ...

  6. LCD学习

    LCD简介(1)显示器,常见显示器(2)LCD(Liquid Crystal Display),液晶显示器,原理介绍(3)LCD应用领域(4)LED OLED1.17.1.2.电子显示器的原理(1)像 ...

  7. 如何破解加密了的word文档

    https://blog.csdn.net/huangbaokang/article/details/79630223 变成xml文件格式之后--查找在documentProtection前面加上un ...

  8. CSS3基础入门01

    CSS3 基础入门 01 前言 相对于css2来说,css3更新了很多的内容,其中包括选择器.颜色.阴影.背景.文本.边框.新的布局方案.2d.3d.动画等等. 而如果想要学习css3的诸多部分,不妨 ...

  9. 【BZOJ5495】[十二省联考2019]异或粽子(主席树,贪心)

    [BZOJ5495][十二省联考2019]异或粽子(主席树,贪心) 题面 BZOJ 洛谷 题解 这不是送分题吗... 转异或前缀和,构建可持久化\(Trie\). 然后拿一个堆维护每次的最大值,每次如 ...

  10. 基于Matlab实现多次最佳一致的函数逼近(类似求渐进函数)

    %%%做系统识别很重要,方法上完全符合系统识别最基础的理论 function [sun]=main(n) fplot(,],'r'); x=ones(n+,); :n+ x(j+)=cos(pi*(n ...