SQL如何獲得本季度第一天、一年的第一天、本月的最後一天
nterval 引數,具有以下設定值:
設定 描述
Year yy, yyyy 年
quarter qq, q 季
Month mm, m 月
dayofyear dy, y 一年的日數
Day dd, d 日
Week wk, ww 一週的日數
Hour hh 小時
minute mi, n 分鐘
second ss, s 秒
millisecond ms 毫秒
①本週的星期一
這裡我是用周(wk)的時間間隔來計算哪一天是本週的星期一。
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
②一年的第一天
現在用年(yy)的時間間隔來顯示這一年的第一天。
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
③季度的第一天
假如你要計算這個季度的第一天,這個例子告訴你該如何做。
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
④當天的半夜
曾經需要通過getdate()函式為了返回時間值截掉時間部分,就會考慮到當前日期是不是在半夜。假如這樣,這個例子使
用DATEDIFF和DATEADD函式來獲得半夜的時間點。
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
深入DATEDIFF和DATEADD函式計算
你可以明白,通過使用簡單的DATEDIFF和DATEADD函式計算,你可以發現很多不同的可能有意義的日期。
目前為止的所有例子只是僅僅計算當前的時間和“1900-01-01”之間的時間間隔數量,然後把它加到“1900-01-01”的
時間間隔上來計算出日期。假定你修改時間間隔的數量,或者使用不同的時間間隔來呼叫DATEADD函式,或者減去時間間隔而
不是增加,那麼通過這些小的調整你可以發現和多不同的日期。
這裡有四個例子使用另外一個DATEADD函式來計算最後一天來分別替換DATEADD函式前後兩個時間間隔。
⑤上個月的最後一天
這是一個計算上個月最後一天的例子。它通過從一個月的最後一天這個例子上減去3毫秒來獲得。有一點要記住,在Sql
Server中時間是精確到3毫秒。這就是為什麼我需要減去3毫秒來獲得我要的日期和時間。
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
計算出來的日期的時間部分包含了一個Sql Server可以記錄的一天的最後時刻(“23:59:59:997”)的時間。
⑥去年的最後一天
連線上面的例子,為了要得到去年的最後一天,你需要在今年的第一天上減去3毫秒。
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
⑦本月的最後一天
現在,為了獲得本月的最後一天,我需要稍微修改一下獲得上個月的最後一天的語句。修改需要給用DATEDIFF比較當前
日期和“1900-01-01”返回的時間間隔上加1。通過加1個月,我計算出下個月的第一天,然後減去3毫秒,這樣就計算出了這
個月的最後一天。這是計算本月最後一天的SQL指令碼。
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
⑧本年的最後一天
你現在應該掌握這個的做法,這是計算本年最後一天指令碼
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))。
⑨本月的第一個星期一
好了,現在是最後一個例子。這裡我要計算這個月的第一個星期一。這是計算的指令碼。
select DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
在這個例子裡,我使用了“本週的星期一”的指令碼,並作了一點點修改。修改的部分是把原來指令碼中“getdate()”部分
替換成計算本月的第6天,在計算中用本月的第6天來替換當前日期使得計算可以獲得這個月的第一個星期一。
相關推薦
阿裏雲1核 2G 40G 高效雲盤的雲服務器低99一年,活動還剩最後幾天,附活動邀請鏈接
tms num IT AC config margin 服務 yun 3年 阿裏雲1核 2G 40G 高效雲盤的雲服務器低99一年,活動還剩最後幾天 雲服務器 ECS最新版 1 核 2 G 1 M帶寬 40 G 高效雲盤 新用戶專享| 限1臺 | 最低&
SQL如何獲得本季度第一天、一年的第一天、本月的最後一天
nterval 引數,具有以下設定值: 設定 描述 Year yy, yyyy 年 quarter qq, q 季 Month mm, m 月 dayofyear dy, y 一年的日數 Day dd, d 日 Week wk, ww 一週的日數
MySQL日期獲取:本月第一天、本月最後一天、上月第一天、上月最後一天、下月第一天、下月最後一天.....
interval的說明: 1、當函式使用時,即interval(),為比較函式,如:interval(10,1,3,5,7); 結果為4; 原理:10為被比較數,後面1,3,
SQL Server:獲取本月最後一天[轉]
參數 end 參數表 diff ont 方法 獲取 bsp 天數 方法一:set @EndDate = dateadd(month, datediff(month, -1, @StoredDate), -1) @StoredDate為本月
shell指令碼獲取昨天今天本週週一本週週日本月第一天本月最後一天
偶爾在linux上需要做指令碼,並設定指令碼按照日期來計算相關資料,這時候就涉及到日期的獲取,這裡介紹簡單的幾個重要日期的獲取,分別是昨天,今天是本週的第幾天,本週週一,本週週日,本月第一天,本月最後一天。 指令碼獲取日期並格式化,思路都是相同的,首先獲取日期,然後給出格式化表示式。 昨
oracle sql 獲取本季度所有月份,上季度所有月份
sele oracle div last code col 獲取 trunc rom 上季度所有月份: SELECT TO_CHAR(ADD_MONTHS(ADD_MONTHS(TRUNC(SYSDATE, ‘YYYY‘),A * 3),-ROWNUM),‘YYYYMM‘
Hive求每一年最大氣溫的那一天 + 溫度
20140102162014010410201201060920120108122012011023200101021220010104112013010619201301081220130110232008010216200801041420070106192007010812200701102320100
Hive求每一年最大氣溫的那一天 + 溫度
bst load part order by str emp mmd num () 20140102162014010410201201060920120108122012011023200101021220010104112013010619201301081220130
輸入一個年份和天數_判斷這是哪一年的哪個月的第幾天
public void someday(int year, int day) { int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //不是閏年的時候,每個月代表的天數 int temp
C++ ,輸入5個數,讓最大值和第一 個數交換,讓最小值和最後一個數交換
#include "iostream" using namespace std; int main() { const int n=6; //靈活定義陣列的大小 int
【Calendar】Calendar設定月份為本月最後一天
1.例如: 現在是2017年6月19日;我想設定時間為6月最後一天; 2.思路: 因為要考慮到每個月最後一天是28,29,30,還是31號所以正常思維來做很麻煩;這裡我們換一種思路: 找到上個月的第一天,這裡是:2017年7月1日;我
easyui-datagrid點選下一頁直接跳轉到最後一頁的可能原因
今天接到一個bug:初次進入頁面easyui-datagrid加載出第一頁的資料,點選下一頁的時候不是到第二頁而是到最後一頁。 如下圖所示: 這個bug確實讓我很鬱悶,最初以為是後臺的問題,除錯了一會兒發現跟後臺沒關係。 隨後檢查了下js程式碼,我的datagrid js
oracle獲取本週、本月、本季度、本年度的第一天和最後一天
--本週select trunc(sysdate,'d')+1 from dual;--下週一select trunc(sysdate,'d')+7from dual; --本月select trunc(sysdate,'mm') from dual;select last_day(trunc(sy
獲得當前日期所屬的本周第一天與最後一天
date 獲得 mkt 日期 時間 -m ech 當前 time echo ‘<br>本周起始時間:<br>‘;echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")
SQL Server學習記錄之獲取每月每季度每年第一天和最後一天
第一天 ediff code spa -1 指定日期 ctc 算法 datetime DECLARE@dtdatetime SET@dt=GETDATE() DECLARE@numberint SET@number=3 --1.指定日期該年的第一天或最後
php 獲取時間(今天,昨天,三天內,本週,上週,本月,三年內,半年內,一年內,三年內) PHP獲取上週、本週、上月、本月、本季度、上季度時間方法大全
<?php date_default_timezone_set('PRC'); /** * 獲取最近一週,一個月,一年 * */ function getLatelyTime($type = ''){ $now = time(); $result = []; if
Oracle 獲取本週、本月、本季、本年的第一天和最後一天(轉)
--本週 select trunc(sysdate, 'd') + 1 from dual; select trunc(sysdate, 'd') + 7 from dual; --本月 select trunc(sysdate, 'mm') from dual; sele
SqlServer 獲取本週、本月、本季、本年的第一天和最後一天
--本週 select dateadd(WEEK, datediff(WEEK, 0, getdate()), 0); select dateadd(WEEK, datediff(WEEK, 0, getdate()), 7); --本月 select date
獲得指定月的最後一天和第一天
獲取指定年月的第一天 /** * 獲取指定年月的第一天 * @param year * @param month * @return * @throws ParseException */ @Suppress
MySql取得日期(前一天、某一天)(前一月第一天到最後一天)
取得當天: mysql> SELECT curdate(); +------------+ | curdate() | +------------+ | 2018-11-24 | +------------+ 取得當前日期: mysql> select now