sql server日期时间函数

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
+关注继续查看

1. 当前系统日期、时间 
1 B1 t1 O2 o( U1 o' i+ m% T& H select getdate()

2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
& k% ?* g+ |$ I+ B$ B1 J% H 例如:向日期加上2天 $ A) h( a: h0 _/ h
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
3 I+ g0 _9 q( K1 R5 Z3. datediff 返回跨两个指定日期的日期和时间边界数。
4 Q7 ^3 n5 W2 s' j% b select datediff(day,'2004-09-01','2004-09-18') --返回:174 c9 z/ }. {3 l* {
4. datepart 返回代表指定日期的指定日期部分的整数。" t9 ~: _4 A# t! l1 q
SELECT DATEPART(month, '2004-10-15') --返回 10+ x" X2 N- }3 j( t' ~) ?
5. datename 返回代表指定日期的指定日期部分的字符串
2 D3 V( d8 O# y/ f) L SELECT datename(weekday, '2004-10-15') --返回:星期五3 ]4 a0 Q! l, n K' L
6. day(), month(),year() --可以与datepart对照一下
' y( D0 B7 i9 d( I; T, L# v8 hselect 当前日期=convert(varchar(10),getdate(),120) 
+ |, W3 D) e) [* O,当前时间=convert(varchar(8),getdate(),114) 5 a. E' N% ~, z0 x1 ?' ?. @
select datename(dw,'2004-10-15') 1 O3 E7 A; _( U7 U6 W; l* g
select 本年第多少周=datename(week,'2004-10-15')8 C( q& K" b1 ^$ p3 S) J! V
,今天是周几=datename(weekday,'2004-10-15')7 J4 {0 g" @, ?# k

0 o6 J2 C" A& M. x- e

函数

参数/功能

GetDate( )

返回系统目前的日期与时间

DateDiff (interval,date1,date2)

以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1

DateAdd (interval,number,date)

以interval指定的方式,加上number之后的日期

DatePart (interval,date)

返回日期date中,interval指定部分所对应的整数值

DateName (interval,date)

返回日期date中,interval指定部分所对应的字符串名称

参数 interval的设定值如下:
6 T2 s& Z& Z! O( U2 B# ^4 R9 e) K

缩 写(Sql Server)

(Access 和 ASP)

说明

Year

Yy

yyyy

年 1753 ~ 9999

Quarter

Qq

q

季 1 ~ 4

Month

Mm

m

月1 ~ 12

Day of year

Dy

y

一年的日数,一年中的第几日 1-366

Day

Dd

d

日,1-31

Weekday

Dw

w

一周的日数,一周中的第几日 1-7

Week

Wk

ww

周,一年中的第几周 0 ~ 51

Hour

Hh

h

时0 ~ 23

Minute

Mi

n

分钟0 ~ 59

Second

Ss

s

秒 0 ~ 59

Millisecond

Ms

-

毫秒 0 ~ 999


. w7 A6 K, d7 ?* i s' g% haccess 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似* S, ]6 }% {5 F* X
举例:. _( X* m; k1 e& Q
1.GetDate() 用于sql server :select GetDate()
$ s2 j! C( K2 f% ]5 L3 Y9 I% S' f7 C; C5 i$ M& m3 G3 M- |/ u; I
2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒7 T3 {* Z3 N: S) e, E" m$ O$ d, G
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天- @8 A% H+ R5 k. i9 e
1 D# y8 c" L: V3 ]5 U1 A' \
3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1,周六为7)
( f- b* [. C! y/ [& a1 R SDatePart('d','2005-7-25 22:56:32')返回值为 25即25号) U7 H- ~. x. Q; q7 x* E# g4 {
DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天% |& v3 R% C( |3 n; s/ l* ~
DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年

 

select GPRSId from TB_GPRS

where DATEDIFF ( mi , lineTime , getdate() )>10 系统时间比系统时间小于10分钟

 

DATEDIFF ( datepart , startdate , enddate )

 

参数

datepart

 

是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft? SQL Server? 识别的日期部分和缩写。

 

日期部分 缩写

year yy, yyyy

quarter qq, q

Month mm, m

dayofyear dy, y

Day dd, d

Week wk, ww

Hour hh

minute mi, n

second ss, s

millisecond ms

 

例 select * from tab where datediff(ss,日期,getdate())=10

 

 

减1年:dateadd(yy,-1,'2005-09-02 08:30:00') 
减1月:dateadd(mm,-1,'2005-09-02 08:30:00') 
减1天:dateadd(dd,-1,'2005-09-02 08:30:00') 
减1小时:dateadd(hh,-1,'2005-09-02 08:30:00') 
减1分钟:dateadd(mi,-1,'2005-09-02 08:30:00')


本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1080894


相关实践学习
使用交互方式创建数据表
本次实验主要介绍如何在RDS-SQLServer数据库中使用交互方式创建数据表。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
SQL Go 数据库
SQLServer数据库获取重复记录中日期最新的记录
在日常的项目开发当中,经常会遇到获取同一属性相同的记录,如何获取记录时间最新的那一条,比如获取某个淘宝用户最新一次的购物记录,美团外卖获取用户最后一次的点外卖记录等等场景,下面通过简单的示例给大家提供三种比较常见的SQL写法,希望能给大家带来一些思路。
SQLServer数据库获取重复记录中日期最新的记录
|
SQL
SQLServer 随机生成指定范围的日期
一个分页的问题,DTCms3.0中,分页是根据时间分页的,如果当添加时间(add_time)都是同一个数值时,不管点击第几页,显示的数据都是同一个的内容,于是就有了需要把同一个时间改指定随机日期的功能。
1236 0
|
SQL XML BI
在Sqlserver下巧用行列转换日期的数据统计
原文:在Sqlserver下巧用行列转换日期的数据统计                  在Sqlserver下巧用行列转换日期的数据统计   前言     在SQLSERVER 中有很多统计函数的基础语法,有使用Group By 或 partition by 后配合Sum,Count(*) 等用法。
1241 0
|
SQL 数据库连接 API
SqlServer中日期和时间数据类型及函数 【转】
来源:http://blog.csdn.net/royalwzy/article/details/6446075     日期和时间数据类型 下表列出了 Transact-SQL 的日期和时间数据类型.
1099 0
|
SQL
获取sql server与年、季度、月、周首尾有关的时间函数
--当前日期: 2013-12-31 select convert(varchar(10), getdate(),120) --当前日期+ 时间:2013-12-31 14:36:46.860 select getdate() --一个月的第一天:2013-12-31 00:00:00.000 select dateadd(mm,datediff(mm,0,getd
2266 0
|
SQL
在sql server里,日期字段按天数进行group by查询的方法
比如一张表里有如下时间字段的记录: 2009-01-01 12:00:00 2008-12-23 11:00:11 2009-12-22 11:22:00 2009-01-01 14:00:00 2009-12-22 12:00:09 通过以下的代码段进行group by之后重排序得到新的结果。
682 0
|
SQL
sql server 2000 按日期查找
参考:http://wenwen.soso.com/z/q191245133.htm?sp=1001 SELECT *FROM tabelNameWHERE (vTime > '20120101')
590 0
推荐文章
更多