• SQL server --时间日期函数、类型转换


    一、时间日期函数

    1、

    SET DATEFIRST 1 --设置星期一为第一天
    --datepart函数,返回时间日期中的某一个部分
    --参数1是指返回哪一个部分,dw表示dayofweek
    --参数2是指哪个时间日期里面去返回
    --datefirst是系统常量,在使用时需要加上@@
    SELECT @@DATEFIRST AS '1st Day', DATEPART(dw, GETDATE()) AS 'Today'
    --getdate指在执行时获取当前系统时间
    SELECT GETDATE()--在执行时取当前系统时间


    2、

    --dateadd 对某一个部分添加或者减去多少时间
    --参数1 是对哪一个部分进行添加或减少
    --参数3 是在哪一个时间日期上进行增加或减少
    --参数2 是增加或减去多少
    select DATEADD(YEAR,-2,'2015-11-20')
    select DATEADD(MONTH,3,'2015-11-20')
    select DATEADD(DAY,5,'2015-11-20')

    3、

    --datediff 算时间差 different 不同的,相差的
    --参数1 是指对哪一个部分进行算法
    --参数2 是开始的时间日期
    --参数3 是结束的日期
    select DATEDIFF(YEAR,'2011-1-2','2015-2-2') --年份相差
    select DATEDIFF(MONTH,'2011-1-2','2015-2-2')--月份相差(算上中间所有月份)
    select DATEDIFF(DAY,'2011-1-2','2015-2-2')--日相差(算上中间所有日)

    4、计算恋爱的天数
    declare @startday varchar(50) --声明变量时需要添加数据类型,变量名前加@
    set @startday = '2008-8-8' --设置变量的值
    --getdate是获取当前系统时间
    select DATEDIFF(DAY,@startday,GETDATE()) as 恋爱天数

    5、

    --datepart 返回时间日期的某一个部分
    --参数1是返回的哪一个部分
    --参数2是以哪个日期作为被计算的日期
    select DATEPART(YEAR,'2008-8-8')--返回年
    select DATEPART(DY,'2008-8-8')--返回dayofyear 这一年的第几天
    select DATEPART(QQ,'2008-8-8')--返回季度 共四个季度

    --day month year 相当于上面的datepart
    --返回天,月,年
    select DAY('2008-8-8')
    select year('2008-8-8')
    select month('2008-8-8')

    6、

    --isdate 判断时间日期格式是否是正确
    --返回值为1表示正确
    --返回值为0表示错误
    select ISDATE('2012-2-29')
    select ISDATE('2008-80-8')

    --sysdatetime 系统精确时间
    select SYSDATETIME()
    SELECT GETDATE()-- 区别是精确与否

    二、类型转换函数

    --数据类型转换 cast convert
    --cast 先写被转换的value + as + 被转换成的类型
    select CAST(1.73 as int)
    select CAST(1.73 as varchar(50))
    select CAST(1.73333333 as decimal(18,2))
    select cast(CAST('1.78' as decimal(18,2)) as int)
    select CAST('1.78' as decimal(18,2))
    --convert 参数1是需要转换成为的类型,参数2是需要被转换的value
    select CONVERT(int , '87')
    select CONVERT(decimal(18,2) , '87.8787')--在精确后面位数的时候会自动四舍五入
    select CONVERT(varchar(50) , 342523.234)

  • 相关阅读:
    谷粒商城Day1
    解决GitHub访问慢的问题
    Java基础知识面试题
    Spring框架学习
    MATLAB基础学习(3)——数值数组及运算
    MATLAB基础学习(2)
    MATLAB基础学习篇(1)
    页面加载之前显示正在加载
    CSS设置多余的文本显示省略号
    Node.js(六)- HTTP知识先填坑
  • 原文地址:https://www.cnblogs.com/gengxin/p/5191085.html
Copyright © 2020-2023  润新知