MS SQL Server 时间函数
| 数据类型 |
存储(字节) |
日期范围 | 精确度 | 格式示例 |
| 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 时间函数的更多相关文章
- MS SQL Server时间常用函数
SQLServer时间日期函数详解,SQLServer,时间日期, 1. 当前系统日期.时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础 ...
- SQL SERVER时间函数
本篇文章还是学习<程序员的SQL金典>内容的记录,此次将讲解的是SQL SERVER的时间函数. 本文只讲SQL SERVER支持的时间函数(其它数据库这里就不罗列了,想看更多的可以关注& ...
- SQL Server ->> 时间函数: EOMONTH, DATEFROMPARTS, TIMEFROMPARTS, DATETIMEFROMPARTS, DATETIMEOFFSETFROMPARTS
上面几个函数都是SQL Server 2012新增的时间函数. EOMONTH 返回传入时间的月结束日,返回数据类型为DATE SELECT EOMONTH(GETDATE()) 结果为 DATEFR ...
- 查看ms SQL Server存储过程,函数的内容
方法1:最简单的,右键单击要查看的存储过程,选择“修改”: 方法2: SELECT definition FROM solar.sys.sql_modules WHERE [object_id]=(O ...
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】
iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post). Oracle设置 <!-- Oracle SE ...
- 数据库开发基础-SQl Server 聚合函数、数学函数、字符串函数、时间日期函数
SQL 拥有很多可用于计数和计算的内建函数. 函数的语法 内建 SQL 函数的语法是: SELECT function(列) FROM 表 函数的类型 在 SQL 中,基本的函数类型和种类有若干种.函 ...
- MS SQL Server中数据表、视图、函数/方法、存储过程是否存在判断及创建
前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候 ...
- (转载)MS SQL Server 未公开的加密函数有哪些?
MS SQL Server 未公开的加密函数有哪些? 以下的文章是对MS SQL Server 未公开的加密函数的具体操作,如果你对其相关的实际操作有兴趣的话,你就可以点击了. MS SQL Serv ...
- MS SQL Server的LTRIM,RTRIM和TRIM函数
在MS SQL Server 2017有了一个新函数TRIM,整合以前版本LTRIM和RTRIM. 这几个函数都是去除字符串头部后尾部的空格. DECLARE @str NVARCHAR(MAX) = ...
随机推荐
- [Oracle维护工程师手记]Data Guard Broker中改属性是否需要两侧分别执行?
Data Guard Broker中改属性是否需要两侧分别执行? Data Guard Broker有一些属性,可以通过 show configuration 看到.我有时会想,这些个属性,是否是分别 ...
- CSL 的魔法
链接 [https://ac.nowcoder.com/acm/contest/551/E] 分析 很显然就是a的第k大得和b的倒数第k大相乘. 那么我们只要让a的第k大和b的倒数第k大位置是相同的即 ...
- 如何查杀stopped进程
在Linux系统下面,top命令可以查看查看stopped进程.但是不能查看stopped进程的详细信息.那么如何查看stopped 进程,并且杀掉这些stopped进程呢? ps -e j | gr ...
- Django缓存机制--rest_framework中节流源码使用的就是django提供的缓存api
一.配置缓存 https://www.jb51.net/article/124434.htm 二.缓存全站.页面.局部 三.自我控制的简单缓存API API 接口为:django.core.c ...
- mysql-笔记-数据类型
https://dev.mysql.com/doc/refman/5.7/en/numeric-type-overview.html serial: SERIAL is an alias for BI ...
- input按钮使用方法
- Spring security oauth2 client_credentials认证 最简单示例代码
基于spring-boot-2.0.0 1,在pom.xml中添加: <!-- security --> <!-- https://mvnrepository.com/artifac ...
- (二分查找 拓展) leetcode278. First Bad Version
You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...
- 速查mysql数据大小
速查mysql数据大小 # 1.查看所有数据库大小 mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data ...
- 深入jar包:从jar包中读取资源文件getResourceAsStream
一.背景 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等). 在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不 ...