• Sqlserver获取时间格式


    Sqlserver获取时间格式

     
     

    ---上个月月初第一天
    select CONVERT(varchar(12) , DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0), 112 )
    ---上个月月末最后一天
    select CONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)), 112 )
    --1. 显示本月第一天
    SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
    select convert(datetime,convert(varchar(8),getdate(),120)+'01',120)
    --2. 显示本月最后一天
    select dateadd(day,-1,convert(datetime,convert(varchar(8),dateadd(month,1,getdate()),120)+'01',120))
    SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))
    --3. 上个月的最后一天
    SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))
    --4. 本月的第一个星期一
    select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())),0)
    --5. 本年的第一天
    SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
    --6. 本年的最后一天
    SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))
    --7. 去年的最后一天
    SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))
    --8. 本季度的第一天
    SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)
    --9. 本周的星期一
    SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
    --10. 查询本月的记录
    select * from tableName where DATEPART(mm, theDate)=DATEPART(mm, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
    --11. 查询本周的记录
    select * from tableName where DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
    --12 查询本季的记录 注:其中:GETDATE() 是获得系统时间的函数。
    select * from tableName where DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
    --13. 获取当月总天数:
    select DATEDIFF(dd,getdate(),DATEADD(mm, 1, getdate()))
    select datediff(day,dateadd(mm, datediff(mm,'',getdate()), ''),dateadd(mm, datediff(mm,'',getdate()), '1900-02-01'))
    --14. 获取当前为星期几
    SELECT DATENAME(weekday, getdate())
    select CONVERT(varchar(12) , getdate(), 101 ) --12/28/2007
    select CONVERT(varchar(12) , getdate(), 102 ) --2007.12.28
    select CONVERT(varchar(12) , getdate(), 103 ) --28/12/2007
    select CONVERT(varchar(12) , getdate(), 104 ) --28.12.2007
    select CONVERT(varchar(12) , getdate(), 105 ) --28-12-2007
    select CONVERT(varchar(12) , getdate(), 106 ) --28 12 2007
    select CONVERT(varchar(12) , getdate(), 107 ) --12 28, 2007
    select CONVERT(varchar(12) , getdate(), 108 ) --10:06:33
    select CONVERT(varchar(12) , getdate(), 109 ) --12 28 2007 1
    select CONVERT(varchar(12) , getdate(), 110 ) --12-28-2007
    select CONVERT(varchar(12) , getdate(), 111 ) --2007/12/28
    select CONVERT(varchar(12) , getdate(), 112 ) --20071228
    select CONVERT(varchar(12) , getdate(), 113 ) --28 12 2007 1
    select CONVERT(varchar(12) , getdate(), 114 ) --10:07:36:623
    select CONVERT(varchar, getdate(), 120 ) --2007-12-28 10:08:56
    select CONVERT(varchar(10), getdate(), 120 ) --2007-12-28
    select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') --20071228101012 \

    前天:Select dateadd(day,-2,getdate())

    明天 :Select dateadd(day,1,getdate())

    规则如下:

    1 101 美国 mm/dd/yyyy

    2 102 ANSI yy.mm.dd

    3 103 英国/法国 dd/mm/yy

    4 104 德国 dd.mm.yy

    5 105 意大利 dd-mm-yy

    6 106 - dd mon yy

    7 107 - mon dd, yy

    8 108 - hh:mm:ss

    - 9 或 109 (*)   默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)

    10 110 美国 mm-dd-yy

    11 111 日本 yy/mm/dd

    12 112 ISO yymmdd

    - 13 或 113 (*)   欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)

    14 114 - hh:mi:ss:mmm(24h)

    - 20 或 120 (*)   ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff]

    - 21 或 121 (*)   ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff]

    - 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格)

    - 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM

    - 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

              关于Emaker中字段的格式转换和字段间的运算代码可以加到属性里的“格式转换(读出)”和“格式转换(写入)”,table字段设定里的“字段”位置也可以灵活加函数。比如:'AF'+ID 或者ID+'/'+PWD ,convert(varchar(50),F1) ,

    convert(int,%)-19110000 (读出)

    convert(char(8),convert(int,%)+19110000) (写入)

    实现行的合计运算等等。加入:%系统变量%,则是调用在Emaker 系统中设定的系统变量。

    获取两个日期相差的天数:

     select datediff(d,'2012-05-10','2012-05-12')

    两个字段拼接:

    SELECT CAST(LastCargoNo AS VARCHAR(10))+'、'+ CAST(LastCargoName AS VARCHAR(10))  FROM Cargo

    SQLServer 获取当前月份的总天数 逐过程 一看就明白 分类: SQL Server2009-12-10 15:36393人阅读评论(0)举报

    --查询当前月份的天数
    --思路当前月份+1,就是下个月,然后用下个月的1号减一,就得到当前月份的最后一天,这样就知道当前月份有多少天了
    --用到的函数 getdate()当前的日期 dateadd() 在年月日中进行加减操作 year()日期中的年部分 month()日期中的月部分 datepart()取出日期中的某部分
    --第一步将当前期日的月部分加一
    select dateadd(mm,1,getdate())
    --第二步获取加一后的日期的年和月
    select 年=year(dateadd(mm,1,getdate())),月=month(dateadd(mm,1,getdate()))
    --第三步拼接成当前月的下一个月的1号
    select convert(varchar(4),year(dateadd(mm,1,getdate())))+'-'+convert(varchar(2),month(dateadd(mm,1,getdate())))+'-01'
    --第四步转成日期类型的
    select 当前月的下一个月的1号=convert(datetime,convert(varchar(4),year(dateadd(mm,1,getdate())))+'-'+convert(varchar(2),month(dateadd(mm,1,getdate())))+'-01')
    --第五步把上面得到的日期减一天得到当前月的最后一天
    select 当前月的最后一天=dateadd(dd,-1,convert(datetime,convert(varchar(4),year(dateadd(mm,1,getdate())))+'-'+convert(varchar(2),month(dateadd(mm,1,getdate())))+'-01'))
    --最后一步拿到天数
    select 当前月份总天数=datepart(dd,dateadd(dd,-1,convert(datetime,convert(varchar(4),year(dateadd(mm,1,getdate())))+'-'+convert(varchar(2),month(dateadd(mm,1,getdate())))+'-01')))

  • 相关阅读:
    mplayer命令行模式下的使用方法
    CentOS安装wireshark
    CentOS查看系统信息
    测试理论1
    单例模式
    接口测试
    rabbitmq
    redis数据库
    时间模块
    charles抓取数据
  • 原文地址:https://www.cnblogs.com/swallow123/p/4537911.html
Copyright © 2020-2023  润新知