當前位置:首頁 » 編程語言 » sql獲取當月是今年第幾個月
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql獲取當月是今年第幾個月

發布時間: 2022-03-07 07:36:39

sql server關於判斷日期為當月第幾周星期幾問題

星期幾問題:DatePart, DateName 都可以滿足你的要求了

當月第幾周:簡單點,用 DatePart,這個可能跟系統區域語言設置有關(國外都是周日是第一天,中國周一是第一天),具體想更好,就自己看著辦啦。

舉個例:求 2013/11/07是11月第幾周
SELECT DATEPART(WEEK, '2013/11/07') - DATEPART(WEEK, '2013/11/01') + 1
即,求出 11月7 號是一年中第幾周,減去 11月1 號是一年中第幾周的值,因從 1 開始計數,所以加個 1

② SQL函數如何判斷資料庫里的日期是當月的第幾周的函數

datepart(wk,@date)
可以得到某天在本年的第幾周,那麼這一天的在本年的第幾周
減去
這一天所在月的第一天在本年的第幾周再加一,就是這一天在當月的周數。
declare
@date
datetime
set
@date
=
'2010-01-12'
select
cast(datepart(mm,@date)
as
varchar(2))
+
'月第'
+
cast((datepart(wk,@date)
-
datepart(wk,convert(varchar(7),@date,120)
+
'-01')
+
1)
as
varchar(2))
+
'周'
--1月第3周

③ SQL SERVER查詢時間是一年中第幾周的函數

1、獲取當前系統資料庫的日期和時間,可以利用函數GETDATE(),select GETDATE()。

④ sql語句如何統計出當月之前的幾個月的數據

SELECT date_format(crtime,'%Y-%m') as qq ,
sum(order_log.quan * mers.price) as profit,
count(orderid) as Quant
FROM order_log
left outer join mers
on order_log.tb_id = mers.tb_id
group by qq

舉例中 我是兩張表,一張表是銷售記錄order_log
另一張表是 商品價格mers
所以用了聯合查詢,如果你是同一張表就更簡單了 不用聯合查詢

⑤ sql:當前日期是本月第幾個工作日

create table #Holiday(dateday datetime)

insert into #Holiday values('2016-08-03 15:10:23');
insert into #Holiday values('2016-08-05 15:10:23');
insert into #Holiday values('2016-08-11 15:10:23');
insert into #Holiday values('2016-08-15 15:10:23');

SET DATEFIRST 1

DECLARE @CAL DATETIME --需要計算的日期
SET @CAL ='2016-08-07 15:12:41'

;WITH CTE
AS (
SELECT RW=ROW_NUMBER()OVER(ORDER BY name)
FROM [Master].dbo.spt_values --找一個系統表(記錄數超過31的表)
)
,CTE2
AS (
SELECT RW,DT=DATEADD(DAY,RW-DAY(@CAL),@CAL)
FROM CTE
WHERE RW <=DAY(@CAL)
)
,CTE3
AS (
SELECT A.RW,A.DT
,IsHoliday =Case When DATEPART(weekday ,DT) IN(6,7) OR B.dateday is not null THEN 1 ELSE 0 END
FROM CTE2 A
LEFT JOIN #Holiday B ON CONVERT(NVARCHAR(10),A.DT,121) =CONVERT(NVARCHAR(10),B.dateday,121)
)
SELECT Count(1) FROM CTE3
WHERE IsHoliday =0

⑥ 使用SQL語句取相關日期(當月天數,當月第一天,當月最後一天,本年最後一天,當月第一個星期)

當月天數

selectday(dateadd(ms,-3,DATEADD(m,DATEDIFF(m,0,getdate())+1,0)))

當月第一天

selectdateadd(d,-day(getdate())+1,getdate())

當月最後一天

selectdateadd(d,-day(getdate()),dateadd(m,1,getdate()))

本年最後一天

selectdateadd(d,-day(getdate()),dateadd(m,12,getdate()))

當月第一個星期一

SELECTDATEADD(wk,DATEDIFF(wk,'',DATEADD(dd,6-DAY(getdate()),getdate())),'')

⑦ 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)

⑧ SQL語句獲取日期的月份

下面以SQL Server資料庫為例,可以用自帶函數MONTH獲取,sql語句如下:

select MONTH(時間列名) as month from 表名

步驟:

1、創建test1表,並賦值。

獲取到年份為「2008」。

⑨ sql查詢指定月份之前的幾個月

1、創建測試表,

create table test_date(id varchar2(20), v_date date);

⑩ sql怎麼在一個語句里得到本月、上一個月、去年同期的數據

你好的
有兩種方式可以得到你要的結果;
通過關聯,把上個月的記錄與當前月的記錄關聯
就能得到你想要的。
另一種方式就是分析函數了。
手機寫的費勁,如果需要明天給你寫一個。