zoukankan      html  css  js  c++  java
  • sql日期函数

    一.字符操作

    1.替换指定字符

    str_replace(string1,需要替换字符,替换成字符)

    SUBSTRING(string1,,)

    二.数值操作

    三.日期操作

    getdate() 
    得到当前时间,可以设置得到各种时间格式.
    datepart(日期部分,日期) 
    取指定时间的某一个部分,年月天时分秒. 
    datediff(日期部分,日期1,日期2) 
    计算指定的日期1和日期2的时间差多少. 
    dateadd(日期部分,数值表达式,日期) 
    计算指定时间,再加上表达式指定的时间长度.

    --取前几天

    'dataadd(day,-10,getdate())'


    --取时间的某一个部分 
    select datepart(yy,getdate()) --year 
    select datepart(mm,getdate()) --month 
    select datepart(dd,getdate()) --day 
    select datepart(hh,getdate()) --hour 
    select datepart(mi,getdate()) --min 
    select datepart(ss,getdate()) --sec

    --取星期几


    set datefirst 1 
    select datepart(weekday,getdate()) --weekday

    --字符串时间

    Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM 
    Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 
    Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 
    Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 
    Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 
    Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 
    Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 
    Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 
    Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 
    Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM 
    Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 
    Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 
    Select CONVERT(varchar(100), GETDATE(), 12): 060516 
    Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 
    Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 
    Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 
    Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 
    Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM 
    Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 
    Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47 
    Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250 
    Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM 
    Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006 
    Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16 
    Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006 
    Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006 
    Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006 
    Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006 
    Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006 
    Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49 
    Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM 
    Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006 
    Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16 
    Select CONVERT(varchar(100), GETDATE(), 112): 20060516 
    Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513 
    Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547 
    Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49 
    Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700 
    Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827 --整数时间


    select datepart(hh,getdate())*10000 + datepart(mi,getdate())*100 + datepart(ss,getdate()) -- 110646

    --时间格式 "YYYY.MM.DD HH:MI:SS" 转换为 "YYYYMMDDHHMISS"

    declare @a datetime,@tmp varchar(20),@tmp1 varchar(20) 
    select @a=convert(datetime,'2004.08.03 12:12:12') 
    select @tmp=convert(char(10),@a,112) 
    select @tmp 
    select @tmp1=convert(char(10),datepart(hh,@a)*10000 + datepart(mi,@a)*100 + datepart(ss,@a)) 
    select @tmp1 
    select @tmp=@tmp+@tmp1 
    select @tmp

    --当月最后一天

    declare 
    @tmpstr varchar(10) 
    @mm int, 
    @premm int, 
    @curmmlastday varchar(10) 
    begin 
    select @mm=datepart(month,getdate())--当月 
    select @premm=datepart(month,dateadd(month,-1,getdate())) --上个月 
    if (@mm>=1 and @mm<=8) 
    select @tmpstr=convert(char(4),datepart(year,getdate()))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01' 
    else if (@mm>=9 and @mm<=11) 
    select @tmpstr=convert(char(4),datepart(year,getdate()))+'.'+convert(char(2),datepart(month,dateadd(month,1,getdate())))+'.'+'01' 
    else 
    select @tmpstr=convert(char(4),datepart(year,dateadd(year,1,getdate())))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01' 
    select @curmmlastday=convert(char(10),dateadd(day,-1,@tmpstr),102) --当月最后一天 
    end

  • 相关阅读:
    sublime问题:失去焦点自动保存
    sublime问题:Tab键不缩进
    sublime问题:默认的中文字体显示异常
    pip换源 解决下载速度慢
    Oracle问题:ORA-01843: 无效的月份
    Eclipse设置自动生成的javadoc
    Java命名规范
    redis的道面试题, 有这一篇就足够了
    批量编译生成python的pyd文件
    测试种类大汇总(45类)
  • 原文地址:https://www.cnblogs.com/bo0214/p/12956730.html
Copyright © 2011-2022 走看看