當前位置:首頁 » 編程語言 » sql取本月第一天

sql取本月第一天

發布時間: 2024-08-10 04:59:47

A. sql如何取某年某月的第一天和最後一天

SELECT CAST((LEFT('20093',4)+'-'+SUBSTRING('20093',5,LEN('20093'))+'-'+'01') AS DATETIME)--第一天

SELECT DATEADD(DAY,-1,DATEADD(MONTH,1,CAST((LEFT('20093',4)+'-'+SUBSTRING('20093',5,LEN('20093'))+'-'+'01') AS DATETIME)))--最後一天

原理:第一天肯定是1號拉,最後一天是下個月第一天減一天。

本月第一天

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate()), 0)) as mouthlastdate

下月第一天:

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) as mouthlastdate

下下月第一天:

SELECT dateadd(ms,-1,DATEADD(mm, DATEDIFF(m,0,getdate())+2, 0)) as mouthlastdate

(1)sql取本月第一天擴展閱讀

sqlserver 時間格式函數詳細

--getdate 獲取當前時間

select getdate()

--dateadd 原有時間加: 2013-02-17 13:20:16 此時間加12個月

select dateadd(MONTH,12,'2013-02-17 13:20:16') --返回:2014-02-17 13:20:16.000 (參數month可以改為 day,year等日期加相應的值)

--datediff 兩個時間的差 (後面-前面=返回值)

select datediff(day,'2013-02-01','2013-02-18') --返回:17 (參數day可以改為 month,year等日期加相應的值)

--datepart 獲取日期的某個部分整數

select DATEPART(month, '2013-2-17') --返回 2 (參數month可以改為 day,year等日期加相應的值)

--datename 獲取指定部位的字元串

select datename(weekday, '2013-2-17') --返回 星期日 (參數weekday可以改為 day,year等日期加相應的值)

--day(), month(),year() 獲取指定部位的字元串

select day('2013-2-15') --返回15

B. 用 oracle 寫一個 sql語句 查詢上一個月的最大日期,

首先獲取本月第一點trunc(sysdate,'mm');這個是獲取本月第一天的時間,然後-1就是上個月最後一天,然後輸出日期to_char(date,'DD');
最後SQL
select to_char(trunc(sysdate,'mm')-1,'DD') from al;

C. sql 獲取當前月的第一天

DATEDIFF(mm,0,getdate())用來計算出「0」和當前日期所相差的月份數,比如說相差10個月。
DATEADD (mm,x,0)
在0日期的基礎上,加上x個月。
那麼就相當於把去掉了日期,只留下了月份,也就是當前月份了。沒有日期,也就是第一天的0點了。

D. sql 配置變數為當月第一天日期

可以利用sql函數實現,首先獲取傳遞過來的日期中的天數,然後減去(天數-1),即可得到第一天日期。
例如mysql:DATE_SUB($[yyyy-mm-dd], INTERVAL (DAY($[yyyy-mm-dd]) -1) DAY)
大體思路是這樣的,不同的資料庫sql日期函數略有不同,自己調試下吧。

E. SQL如何計算指定日期當前月

給出的日期求當月一號的方法你的寫法應該是比較簡單的方法了,不過感覺你給轉換成char型不太好,最好是varchar型的,另外你的寫法可以簡寫成
select convert(varchar(6),cast('2006-3-8' as datetime),112)+'01'
這樣得到的'20060301'可以直接作為日期來使用,不必再轉換。

得到之前幾個個月的第一天可以直接用dateadd來實現
比如得到3月1日的上一月1日,也就是2月1日的方法是
select dateadd(month,-1,convert(varchar(6),cast('2006-3-8' as datetime),112)+'01')

F. SQL如何獲得本季度第一天,一年的第一天,本月的最後一天

你好,以下是獲取年,季度,天日期的所有方式:
DECLARE @dt datetime
SET @dt=GETDATE()
DECLARE @number int
SET @number=3
--1.指定日期該年的第一天或最後一天
--A. 年的第一天
SELECT CONVERT(char(5),@dt,120)+'1-1'
--B. 年的最後一天
SELECT CONVERT(char(5),@dt,120)+'12-31'
--2.指定日期所在季度的第一天或最後一天
--A. 季度的第一天
SELECT CONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt)-2,
@dt),
120)+'1')

--B. 季度的最後一天(CASE判斷法)
SELECT CONVERT(datetime,
CONVERT(char(8),
DATEADD(Month,
DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)
+CASE WHEN DATEPART(Quarter,@dt) in(1,4)
THEN '31'ELSE '30' END)

--C. 季度的最後一天(直接推演算法
SELECT DATEADD(Day,-1,
CONVERT(char(8),
DATEADD(Month,
1+DATEPART(Quarter,@dt)*3-Month(@dt),
@dt),
120)+'1')

--3.指定日期所在月份的第一天或最後一天
--A. 月的第一天
SELECT CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')

--B. 月的最後一天
SELECT DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')

--C. 月的最後一天(容易使用的錯誤方法)
SELECT DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))

--4.指定日期所在周的任意一天
SELECT DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)

--5.指定日期所在周的任意星期幾
--A. 星期天做為一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)

--B. 星期一做為一周的第1天
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)

G. 如何將SQL中的日期欄位的值改成當月的第一天呀

這樣:
update 表
set 日期欄位=dateadd(dd,-day(日期欄位)+1,日期欄位)

原理是,原日期減去原日期在當月所處的天數然後再加一天就是原日期當月1日的日期。

熱點內容
我的世界伺服器被破壞了怎麼恢復 發布:2024-11-25 18:27:57 瀏覽:329
日常電瓶叉車配置有哪些 發布:2024-11-25 18:21:17 瀏覽:361
java的二分查找 發布:2024-11-25 18:21:11 瀏覽:23
買帕薩特選哪個配置 發布:2024-11-25 18:17:23 瀏覽:224
編程很掙錢嗎 發布:2024-11-25 18:13:43 瀏覽:935
接受btc支付的香港雲伺服器 發布:2024-11-25 18:02:09 瀏覽:909
華為手機怎麼密碼解鎖 發布:2024-11-25 17:56:34 瀏覽:938
伺服器管理員怎麼編輯別人背包 發布:2024-11-25 17:55:45 瀏覽:930
plc編程T 發布:2024-11-25 17:55:02 瀏覽:268
資料庫年薪 發布:2024-11-25 17:51:18 瀏覽:666