SQL日期函数

SQL日期函数中的类型码可以为0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
,20,21,22,23,24,25,100,101,102,103,104,105,106,107,108,109,100,
110,111,112,113,114,120,121,126,127,130,131

函数 结果
select CONVERT(varchar(30),getdate(),0) 09 13 2017 3:51PM
select CONVERT(varchar(30),getdate(),1) 09/13/17
select CONVERT(varchar(30),getdate(),2) 17.09.13
select CONVERT(varchar(30),getdate(),3) 13/09/17
select CONVERT(varchar(30),getdate(),4) 13.09.17
select CONVERT(varchar(30),getdate(),5) 13-09-17
select CONVERT(varchar(30),getdate(),6) 13 09 17
select CONVERT(varchar(30),getdate(),7) 09 13, 17
select CONVERT(varchar(30),getdate(),8) 15:51:54
select CONVERT(varchar(30),getdate(),9) 09 13 2017 3:51:54:550PM
select CONVERT(varchar(30),getdate(),10) 09-13-17
select CONVERT(varchar(30),getdate(),11) 17/09/13
select CONVERT(varchar(30),getdate(),12) 170913
select CONVERT(varchar(30),getdate(),13) 13 09 2017 15:51:54:550
select CONVERT(varchar(30),getdate(),14) 15:51:54:550
select CONVERT(varchar(30),getdate(),20) 2017-09-13 15:51:54
select CONVERT(varchar(30),getdate(),21) 2017-09-13 15:51:54.550
select CONVERT(varchar(30),getdate(),22) 09/13/17 3:51:54 PM
select CONVERT(varchar(30),getdate(),23) 2017-09-13
select CONVERT(varchar(30),getdate(),24) 15:51:54
select CONVERT(varchar(30),getdate(),25) 2017-09-13 15:51:54.550
select CONVERT(varchar(30),getdate(),100) 09 13 2017 3:51PM
select CONVERT(varchar(30),getdate(),101) 09/13/2017
select CONVERT(varchar(30),getdate(),102) 2017.09.13
select CONVERT(varchar(30),getdate(),103) 13/09/2017
select CONVERT(varchar(30),getdate(),104) 13.09.2017
select CONVERT(varchar(30),getdate(),105) 13-09-2017
select CONVERT(varchar(30),getdate(),106) 13 09 2017
select CONVERT(varchar(30),getdate(),107) 09 13, 2017
select CONVERT(varchar(30),getdate(),108) 15:51:54
select CONVERT(varchar(30),getdate(),109) 09 13 2017 3:51:54:550PM
select CONVERT(varchar(30),getdate(),110) 09-13-2017
select CONVERT(varchar(30),getdate(),111) 2017/09/13
select CONVERT(varchar(30),getdate(),112) 20170913
select CONVERT(varchar(30),getdate(),113) 13 09 2017 15:51:54:550
select CONVERT(varchar(30),getdate(),114) 15:51:54:550
select CONVERT(varchar(30),getdate(),120) 2017-09-13 15:51:54
select CONVERT(varchar(30),getdate(),121) 2017-09-13 15:51:54.550
select CONVERT(varchar(30),getdate(),126) 2017-09-13T15:51:54.550
select CONVERT(varchar(30),getdate(),127) 2017-09-13T15:51:54.550
select CONVERT(varchar(30),getdate(),130) 22 ?? ????? 1438 3:51:54:550P
select CONVERT(varchar(30),getdate(),131) 22/12/1438 3:51:54:550PM

其中,21,25,121效果相同(2017-09-13 15:51:54.550 )。
其中,在select语句中需要获取固定格式日期时,只需将getdate()替换成需要查找的字段名,需要设置的该字段的别名直接在后面添加即可,

如:select CONVERT(varchar(30), RQ_REQ_DATE, 21) from td.REQ;

查询结果:

出处:https://blog.csdn.net/Amanda_Yt/article/details/77968559

==================================================================

另外在提供一个和日期相关的函数,方便大家参考。

getdate()函数:取得系统当前的日期和时间。返回值为datetime类型的。

用法:getdate()

例子:

select getdate() as dte,dateadd(day,-1,getdate()) as nowdat

datepart()函数:以整数的形式返回时间的指定部分。

用法:datepart(datepart,date)

参数说明:datepart时要返回的时间的部分,常用取值year、month、day、hour、minute、second

date是所指定的时间。

例子:

select datepart(month, getdate()) as'Month Number'

dateadd()函数:通过给指定的时间的指定部分加上一个整数值以返回一个新时间值。

用法:dateadd(datepart,number,date)

参数说明:datepart(同上)

date(同上)

number要增加的值,整型,可正可负,正值返回date之后的时间值,负值返回date之前的时间值

例子:

select getdate() as today

select dateadd(day,-1,getdate())

select dateadd(day,1,getdate())

datediff()函数:返回两个时间以指定时间部分来计算的差值。返回整数值。

如1991-6-12和1991-6-21之间以天来算相差9天,1998-6-12和1999-6-23按年算相差1年,1999-12-1和1999-3-12按月算相差9个月

用法:datediff(darepart,date1,date2)

参数说明:datepart(同上)

date1、date2(同上date)

例子:

select datediff(month,'1991-6-12','1992-6-21') as a

常用时间函数:

使用时间和日期的函数

getdate():获取系统当前时间
dateadd(datepart,number,date):计算在一个时间的基础上增加一个时间后的新时间值,比如:dateadd(yy,30,getdate())
datediff(datepart,startdate,enddate):计算两个时间的差值,比如:datediff(yy,getdate(),'2008-08-08')
dataname(datepart,date):获取时间不同部分的值,返回值为字符串
datepart(datepart,date):和datename相似,只是返回值为整型
day(date):获取指定时间的天数
month(date):获取指定时间的月份
year(date):获取指定时间的年份

SQL Server的几个分页解决方案:

解决方案1:
declare @pageIndex int,@pageSize int,@recordNum int
set @pageIndex=3
set @pageSize=3
select top(@pageSize) * from Grade where id not in (select top 
((@pageIndex-1)*@pageSize) id from Grade)//显示出第 7 到 第 9 条

select @recordNum=count(*) from Grade//显示总记录数

点评:效率不高,而且取出来的数据是按id排序的。如果想按其他字段排序就不行。

解决方案二:
declare @id int
--set rowcount 3
--select @id=id from Grade
select top 3 @id=id from Grade//这句等效于上面注视的两句
select top 3 * form Grade where id>@id//查询出第 4 到第 6 条记录

点评:效率比方案一稍高,但是取出来的数据是也按id排序的。如果想按其他字段排序就不行

解决方案三:
create table #table(new_id int identity(1,1) primary key,id int)
insert into #table(id) select id from grade
select a.* from grade a join #table b on (b.new_id between 6 and 9) and a.id=b.id
//取出第 6 到第 9 条,
点评:其原理是把要分页的表的主键插入到临时表中,临时表的字段就是一个标识列和要分
页的表的主键列(包括是多个主键的情况,上面的两种方法就不行)。特点是效率高,取出
来的数据能根据自己要求的字段排序。

临时表:
上面的解决方案三就是使用了临时表,它与永久表相似,但临时表存储在 tempdb 中,当不
再使用时会自动删除。
临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表
的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server
实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户
都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

表级变量:
象上面分页的例子也可以使用表级变量,象下面这样:

declare @table table (newid int identiey(1,1),id int)
insert into @table(id) select id from grade
select a.* from grade a join @table b on (b.new_id between 6 and 9) and a.id=b.id
这种方式比使用临时表分页效率更高。

出处:https://www.cnblogs.com/Sea1ee/p/5991273.html

Sql server日期函数用法的更多相关文章

  1. SQL Server 日期函数:某天是星期几?

    [鹏城万里] 发表于 www.sqlstudy.com 要得到某一天是星期几,需要用到 SQL Server 中的日期函数:datename(). 今天是星期几,例子 1: set language ...

  2. SQL Server日期函数总结

    获得一个月的天数:首先到得一个月最后一天的日期,通过 SQL Server 日期函数 day() 取得日期中的“天 ”部分 获得 2008 年 2 月份的天数:select day(cast('200 ...

  3. SQL Server日期函数之获得一个月中的天数

    SQL Server日期函数之获得一个月中的天数在实际中的应用比例还是占为多数的,如果你对这一技术,心存好奇的话,以下的文章将会揭开它的神秘面纱,望会在以后的学习或是工作中带来很大的帮助. 获得一个月 ...

  4. Sql server 日期函数和日期转换

    时间函数 SQL Server Date 函数 下面的表格列出了 SQL Server 中最重要的内建日期函数: 函数 描述 GETDATE() 返回当前日期和时间 DATEPART(Type,dat ...

  5. sql server 日期函数

    一.sql server日期时间函数Sql Server中的日期与时间函数 1.  当前系统日期.时间     select getdate()  2. dateadd  在向指定日期加上一段时间的基 ...

  6. SQL Server 日期函数大全

    一.统计语句 1.--统计当前[>当天00点以后的数据] SELECT * FROM 表 WHERE CONVERT(Nvarchar, dateandtime, 111) = CONVERT( ...

  7. SQL Server 日期函数:EOMonth、DateFormat、Format、DatePart、DateName

    一,月份的最后一天 函数 EOMonth 返回指定日期的最后一天 EOMONTH ( start_date [, month_to_add ] ) 1,对于start_date 有两种输入方式,能够转 ...

  8. 四个很好用的Sql Server 日期函数:DateDiff、DatePart、DateAdd、DateName

    我以前查一段时间范围内的数据都是在程序里计算好日期再掉查询语句,现在我用下面的函数.SQL SERVER没有查一季度数据的函数. DateDiff函数: 描述 返回两个日期之间的时间间隔. 语法 Da ...

  9. SQL Server DATEDIFF() 函数用法

    定义和用法 DATEDIFF() 函数返回两个日期之间的时间,例如计算年龄大小. DATEDIFF(datepart,startdate,enddate)startdate 和 enddate 参数是 ...

随机推荐

  1. 項目当中使用的easyui的模板crud页面

    1.简单的增删改查页面: 第一步骤:html原型型编写,写法参照了easyui demo中form有关html等 <!DOCTYPE html> <html> <head ...

  2. 中文datepicker控件

    $(function() { $.datepicker.regional[, isRTL: !, showMonthAfterYear: !, yearSuffix: "年" } ...

  3. L257 论述型作文模板

    一引出相同观点: 1.With the development of science and technology, more and more people believe that...随着科技的 ...

  4. L259 合同

    We are satisfied with the terms of this contract for the most part, but we feel that your terms of p ...

  5. fread 不能读取最后一个数据块

    今天遇到一个问题,fread()竟然不能读取文件中的最后一个数据块. 我定义了一个结构体: Persong { char name[10]; char phone[15]; } 以及两个函数: int ...

  6. 如何给cbv的程序添加装饰器

    引入method_decorator模块 1,直接在类上加装饰器 @method_decorator(test,name=‘dispatch’) class Loginview(view) 2,直接在 ...

  7. python 一行代码字符串转字典方法

    b = 'bid=Qzw9cKnyESM; ll="108288"; __yadk_uid=4YChvgeANLBEh4iV00n1tc0HQ8zpmSl1; __utmc=301 ...

  8. 2019-03-29-day022-封装与类方法与静态方法

    昨日回顾 抽象类 规范代码,规定子类必须实现某个方法的名字 不能实例化 from abc import ABCMeta, abstractmethod class 抽象类名(metaclass=ABC ...

  9. mysql取差集、交集、并集

    mysql取差集.交集.并集 博客分类: Mysql数据库 需求:从两个不同的结果集(一个是子集,一个是父集),字段为电话号码phone_number,找出父集中缺少的电话号码,以明确用户身份. 结合 ...

  10. CHAP认证(双向)

    实验要求:掌握CHAP认证配置 拓扑如下: R1enable 进入特权模式configure terminal    进入全局模式hostname R1 设置主机名 interface s0/0/0 ...