zoukankan      html  css  js  c++  java
  • 几个SQL取日期的小文档

    Sqlserver中经常要操作一些时间类型的字段转换,我又不太记得住,所以搜集了以下的一些SqlserverConvert DateTime相关的资料发表在自己的小站里,方便自己以后要用的时候寻找,望对大家也有帮助.

    将sqlserver中table表的[datetime]字段值‘2007-11-07 16:41:35.033’ 改为‘2007-11-07 00:00:00‘去除了时分秒.[datetime]字段要为datetime类型的哦. UPDATE table SET [datetime]= Convert(char(11),[datetime],120)

    获取当前日期利用 convert 来转换成我们需要的datetime格式.
    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
    ------------------------------------------------------------

    declare @dateTime DateTime--定义一个datetime的变量
    set @dateTime=getdate(); --获取系统当前时间,并赋值给@dateTime字段

    --短日期格式:yyyy-m-d
    SELECT REPLACE(CONVERT(varchar(10),@dateTime,120),N'-0','-')

    --长日期格式:yyyy年mm月dd日
    SELECT STUFF(STUFF(CONVERT(char(8),@dateTime,112),5,0,N'年'),8,0,N'月')+N'日'

    --长日期格式:yyyy年m月d日
    SELECT DATENAME(Year,@dateTime)+N'年'+CAST(DATEPART(Month,@dateTime) AS varchar)+N'月'+DATENAME(Day,@dateTime)+N'日'

    --完整日期+时间格式:yyyy-mm-dd hh:mi:ss:mmm
    SELECT CONVERT(char(11),@dateTime,120)+CONVERT(char(12),@dateTime,114)

    ------------------------------------------------------------------------------------------------

    2、日期推算处理
    DECLARE @dt datetime
    SET @dt=GETDATE()
    DECLARE @number int
    SET @number=3
    --1.指定日期该年的第一天或最后一天
    --A. 年的第一天
    SELECT CONVERT(char(5),@dt,120)+'1-1'
    --B. 年的最后一天
    SELECT CONVERT(char(5),@dt,120)+'12-31'
    --2.指定日期所在季度的第一天或最后一天
    --A. 季度的第一天
    SELECT CONVERT(datetime,
    CONVERT(char(8),
    DATEADD(Month,
    DATEPART(Quarter,@dt)*3-Month(@dt)-2,
    @dt),
    120)+'1')
    --B. 季度的最后一天(CASE判断法)
    SELECT CONVERT(datetime,
    CONVERT(char(8),
    DATEADD(Month,
    DATEPART(Quarter,@dt)*3-Month(@dt),
    @dt),
    120)
    +CASE WHEN DATEPART(Quarter,@dt) in(1,4)
    THEN '31'ELSE '30' END)
    --C. 季度的最后一天(直接推算法)
    SELECT DATEADD(Day,-1,
    CONVERT(char(8),
    DATEADD(Month,
    1+DATEPART(Quarter,@dt)*3-Month(@dt),
    @dt),
    120)+'1')
    --3.指定日期所在月份的第一天或最后一天
    --A. 月的第一天
    SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')
    --B. 月的最后一天
    SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')
    --C. 月的最后一天(容易使用的错误方法)
    SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))
    --4.指定日期所在周的任意一天
    SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)
    --5.指定日期所在周的任意星期几
    --A. 星期天做为一周的第1天
    SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
    --B. 星期一做为一周的第1天
    SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)

  • 相关阅读:
    jQuery 源码基本框架
    jQuery 源码细读 -- $.Callbacks
    Excel等外部程序点击链接会带上IE信息的bug
      与 空格的区别
    前端模板文件化jQuery插件 $.loadTemplates
    客户端渲染的页面能否被搜索引擎完整收录呢?
    javascript 函数声明问题
    JavaScript 继承机制小记
    link与@import
    tcp_udp
  • 原文地址:https://www.cnblogs.com/luxx/p/1827942.html
Copyright © 2011-2022 走看看