zoukankan      html  css  js  c++  java
  • TSQL的几个特殊用法(一)

    一:DateAdd与DateDiff的用法。
     DateAdd(interval,number,date),通过interval格式为date加上值number
     DateDiff(interval,date1,date2),计算date1和date2之间的interval差距。
     在T-SQL中,日期类型的0表示的值是1900-01-01,可以用  select convert(datetime,0)来得出。
     那么,如果要计算当前月的第一天的日期,该怎么做呢?
     思路:首先,与原始日期0 DateAdd mm<月份>格式的number后,输出的所得的mm值后月份的1号,也就是第一天。
     因此,我们可以先计算当前月与0之间的月份差:
        DateDiff(mm,0,getdate())    当前是8月份,经计算得出的结果是1303,也就是与1900-01相关1303个月。
     接着我们再在原始基础上加上这1303个月
        DateAdd(mm,1303,0)   得出的结果是:2008-08-01 00:00:00 0000
     因此:一句SQL语句可以得出:
       select DateAdd(mm,DateDiff(mm,0,getdate()),0) as 这个月第一天
    ------
     同理,跟第一天,周一,第一个月,季度第一天,一年第一天都可以同样的方式。只不过interval更改一下就可以
     例:这周的第一天:
     select DateAdd(wk,DateDiff(wk,0,getdate()),0) as 周一
     select DateAdd(yy,DateDiff(yy,0,getdate()),0) as 今年第一天
    ------
    有一个比较特殊的,当天的半夜怎么弄??
    很简单的,半夜不就==12点整么,12点整不就是另外一天了么?
    因此,
    select DateAdd(dd,DateDiff(dd,0,getdate()),0) as 当天半夜
    同样的道理,当天半夜不就是另外一天的开始么,
    和这个月的第一天这些一样,实际上当天的半夜的命题===今天的第一个小时《语文不好,感觉有点啥》
    ------
    如果这些命题都不是提的第一天,第一小时啥的,而是最后一天,最后一小时呢???
        ^_^
    ------
  • 相关阅读:
    c++ 中bool 的默认值
    cocos2d CCLOG格式符号表
    c++数组指针bug
    cocos2d-x-2.2.6创建工程
    Nape实现坐标旋转角度回弹
    haxe 中使用音效
    haxe 嵌入swf 读取里面的内容
    haxe 配置
    Spring Tool Suite(STS)基本安装配置
    git提交忽略文件.gitignore内容
  • 原文地址:https://www.cnblogs.com/McJeremy/p/1271584.html
Copyright © 2011-2022 走看看