當前位置:首頁 » 編程語言 » sql求月初
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql求月初

發布時間: 2023-08-27 00:12:52

1. oracle sql 查詢上一月月初到月末的數據

select * from 表名 where to_char(日期列,'yyyy-mm')=to_char(add_months(sysdate,-1),'yyyy-mm')

2. 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

(2)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

3. SQL中有什麼函數自動獲取每月月初

Oracle取得本周,本月,本季,本年的第一天和最後一天
--本周
select trunc(sysdate,'d')+1 from al;
select trunc(sysdate,'d')+7 from al;
--本月
select trunc(sysdate,'mm') from al;
select last_day(trunc(sysdate)) from al;
--本季
select trunc(sysdate,'Q') from al;
select add_months(trunc(sysdate,'Q'),3)-1 from al;
--本年
select trunc(sysdate,'yyyy') from al;
select add_months(trunc(sysdate,'yyyy'),12)-1 from al;

4. oracle 統計本月月初到當前時間的sql條件應該是什麼樣的

你首先要確定你的環境變數里日期格式是什麼樣的,是yyyy/mm/dd還是yyyy-mm-dd,然後把兩個格式化成一種就可以了,而且也不需要to_char。對於你的問題最簡單的改法就是between to_char(trunc(sysdate,'MM'),'yyyymmdd') and '20150601' 但不是最好的寫法

5. sql server 2005 求去年同期當月第一天和當月最後一天

DECLARE @TestDATETIME
SELECT @Test = DATEADD(YEAR, -1, GETDATE())
--這已經是得出去年同期的時間。
剩下的思路是,格式化@Test,取年份和月份,再指定日為第一天
例如 2012-4-1,這樣就得出第一天
再用這個加一個月 DATEADD(MONTH, 1, CONVERT(DATETIME, '2012-4-1'))
就會得出 2012-5-1,再減一天 DATEADD(DAY, -1, '2012-5-1')
我這里沒有裝 SQL Server,具體不能幫你寫完,你試一下

6. sql ,求所月項目的月初現金余額,如何用sql實現

因為之前沒有仔細理解你的問題,後來發現你的原本意圖並未交代清楚,所以我收回之前的答案。如果需要我解決你的問題的話,請向我發追問,只要搞清楚了你的意圖,肯定能給出正確答案。

根據用網路消息向提問者了解後,現在已經弄清楚問題的實質意圖為:
找到那張表裡每個月,各個項目下日期最小的那條記錄,然後輸出該條記錄之(余額+付-收)的計算值
表情況說明:
1.余額、付、收的數據類型是數字
2.日期是文本
3.如果科目相同的情況下,不會出現多個相同最小日期的情況
4.表內存儲多個月的記錄(不含年份)

為了避免SQL過於復雜,請確保:
A.余額、付、收這三個欄位的必填欄位屬性為「是」,確保沒有空值存在;
B.日期欄位值必須嚴格按照:兩位月份/兩位日期(例如:01/06) 格式錄入;
C.請為科目和日期這兩個欄位添加唯一聚合索引,以避免同科目有多個相同日期的情況發
生。
SQL代碼如下:
SELECT 表.科目, 表.余額+表.付-表.收 AS 月初現金余額, 表.日期
FROM 表 INNER JOIN (SELECT DISTINCT MIN(日期) AS D FROM 表
GROUP BY 科目,LEFT(日期,2))a ON 表.日期=a.D
ORDER BY 表.日期, 表.科目;

運行上列代碼,得到下列結果:
科目 月初現金余額 日期
A 800 01/05
B 100 01/06

7. pl/sql 怎麼提取指點時間的月初第一天

declare
rt_end Date;
rt_first varchar(20);
begin
rt_end:=to_date('2012-02-14','yyyy-mm-dd');
rt_first:=to_char(rt_end,'yyyy-mm')||'-01';
dbms_output.put_line(rt_first);
end;
/
我不清楚你的題目是要求什麼的,所以也不知要怎麼做,只能做這些。
希望這個對你有幫助!

8. sql 語句 怎麼獲取指定月的第一天和最後一天

first_day()得到一個月中的第一天:如first_day(to_date('2008-5-22','yyyy-mm-dd')) 結果:2008-5-1
last_day()得到一個月最後的一天:如:last_day(to_date('2008-5-22','yyyy-mm-dd')) 結果:2008-5-31 ;

9. 怎麼用sql語句查找從月初到月末的數據

要找出月初到月末的數據,那隻要找出本月范圍即可,SQL提供了DateDiff來解決這個問題:
DateDiff 函數:返回兩個日期之間的時間間隔。
語法
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
示例如下:
select * from table where datediff(month,getdate(), date_colName)=0
如果當前日期getdate() 和表中的欄位date_colName 相等,即為本月。