?竞猜足球总进球数

20

01-2014

SQL Server 中的時間算法

  DECLARE @Date DATETIME  SET @Date=GETDATE()  –前一天,給定日期的前一天  SELECT DATEADD(DAY,-1,@Date) AS ‘前一天’  –后一天,給定日期的后一天  SELECT DATEADD(DAY,1,@Date) AS ‘后一天’  GO  –月初,計算給定日期所在月的第一天  –這個計算的技巧是先計算當前日期到“1900-01-01”的時間間隔數,然后把它加到“1900-01-01”上來獲得特殊的日期,這個技巧可以用—來計算很多不同的日期。  DECLARE @Date DATETIME  SET @Date=GETDATE()  SELECT DATEADD(MONTH,DATEDIFF(MONTH,’1900-01-01′,@Date),’1900-01-01′) AS ‘所在月的第一天’  –精簡算法,根據SQL Server的時間表示方式可知,’1900-01-01′ 可以用0代替  SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,@Date),0) AS ‘所在月的第一天’  –上面兩種算法精確到天 時分秒均為00:00:00.000  –下面算法課以保留時分秒  –思路:用給定日期減去月第一天與給定日期差的天數  SELECT DATEADD(DAY,1-DATEPART(DAY,@Date),@Date)  GO  –月末,計算給定日期所在月的最后一天  DECLARE @Date DATETIME  SET @Date=GETDATE()  –思路:當前月的下一月1號在減1天  SELECT DATEADD(DAY,-1,DATEADD(MONTH,1+DATEDIFF(MONTH,’1900-01-01′,@Date),’1900-01-01′)) AS ‘所在月的最一天’  SELECT DATEADD(MONTH,1+DATEDIFF(MONTH,’1900-01-01′,@Date),’1900-01-01′)-1 AS ‘所在月的最一天’  –1900-01-01 用0代替  SELECT DATEADD(DAY,-1,DATEADD(MONTH,1+DATEDIFF(MONTH,0,@Date),0)) AS ‘所在月的最一天’  SELECT DATEADD(MONTH,1+DATEDIFF(MONTH,0,@Date),0)-1 AS ‘所在月的最一天’  –思路:與月初計算思路相同  SELECT DATEADD(MONTH,DATEDIFF(MONTH,’1989-12-31′,@Date),’1989-12-31′) AS ‘所在月的最一天’  –精簡算法,’1989-12-31′ 用-1代替  SELECT DATEADD(MONTH,DATEDIFF(MONTH,-1,@Date),-1) AS ‘所在月的最一天’  –保留時分秒的算法  SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,DATEADD(DAY,1-DATEPART(DAY,@Date),@Date)))  GO  –其他月計算  –計算給定日期所在月的上月第一天  DECLARE @Date DATETIME  SET @Date=GETDATE()  –當前月第一天減去一個月  SELECT DATEADD(MONTH,-1,DATEADD(MONTH,DATEDIFF(MONTH,0,@Date),0)) AS ‘上月第一天’  –簡化  SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,@Date)-1,0) AS ‘上月第一天’  –另一種當前月第一天算法  SELECT DATEADD(MONTH,-1,DATEADD(DAY,1-DATEPART(DAY,@Date),@Date)) ‘上月第一天’  GO

該日志 2014年01月20日發表在網絡安全技術分類下, 通告目前不可用,你可以至底部留下評論。
轉載請注明: SQL Server 中的時間算法 | 鄭州計算機學校_鄭州電腦學校_鄭州電腦培訓
总进球世界杯 人人发彩票首页 小米旗下赚钱软件 彩虹岛商人很赚钱 代理记账公赚钱吗 flfa paly怎么赚钱 亚太88彩安卓 国内 现在 赚钱机会 太原货拉拉赚钱吗 泰皇彩票安卓 像掌上头条一样赚钱的软件 梦幻西游洗胚子赚钱 卖藏红花赚钱吗 玩百家乐能赚钱吗 腾讯欢乐捕鱼怎么换炮台升级炮台 大圣捕鱼最新手机版 电动汽车跑滴滴很赚钱