zoukankan      html  css  js  c++  java
  • TSQL取时间的年月日

    经常保存在SQL Server的datetime格式的数据都是带有时、分、秒等的。但是在页面读取的时候,通知只需要年月日,

    今天用到的读取时间年月日的方法如下:

    1. convert(varchar(12),时间列名,111)  

    如在数据表table1中的列 operdate是datetime格式的,需要读取operdate的年月日的方法就是

    1. select convert(varchar(12),operdate,111) from table1  

    -=================================================

    --SQL中取得時間的一些技巧
    --*********時間精確3毫秒*****************
    --=================================================
    SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

    select DATEDIFF(mm,0,getdate())

    SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
    SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
    SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)


    --------------當天半夜--------------------------------------------
    SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

    --------------最後一天--------------------------------------------
    SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
    SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
    SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
    SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

    select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),0)


    ----------去掉時分秒----------------------------
    declare @a datetime
    set @a = getdate()
    SELECT @a,DATEADD(day,DATEDIFF(day,0,@a),0)
      
    ----------顯示星期幾----------------------------
    select datename(weekday,getdate())
      
    ----------如何取得某個月天數-------------------
    declare @m int
    set @m=3 --月份
    select datediff(day,'2006-'+cast(@m as varchar)+'-15' ,'2006-'+cast(@m+1 as varchar)+'-15')
      
    ----------或者使用計算本月的最後一天的腳本,然後用DAY函數區最後一天
    SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))

    ----------判斷是否閏年:------------------------
    SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then '平

    年' else '閏年' end

    select case datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-

    01'))
    when 28 then '平年' else '閏年' end
      
    ----------一個季度多少天------------------------
    declare @m tinyint,@time smalldatetime
    select @m=month(getdate())
    select @m=case when @m between 1 and 3 then 1
    when @m between 4 and 6 then 4
    when @m between 7 and 9 then 7
    else 10 end
    select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
    select datediff(day,@time,dateadd(mm,3,@time))


    SELECT CONVERT(VARCHAR(8), DATEADD(m, DATEDIFF(m, '', getdate()), ''), 112) AS [月初]
    select CONVERT(VARCHAR(8), DATEADD(m, -3, getdate()), 112) AS [三個月前]
  • 相关阅读:
    【电子书】企业级IT运维宝典之GoldenGate实战下载
    10.Oracle Golden Date(ogg)的搭建和管理(转载)
    VMware Workstation 15 Pro 永久激活密钥
    oracle undo表空间增大不释放
    Oracle11g-BBED安装
    alter system/session set events相关知识
    DG环境的日常巡检
    nginx ----http强制跳转https
    转载:Zabbix-(五)监控Docker容器与自定义jvm监控项
    ORACLE备份保留策略(RETENTION POLICY)
  • 原文地址:https://www.cnblogs.com/anorthwolf/p/1808432.html
Copyright © 2011-2022 走看看