關於sql中日期相關跨年處理

2021-08-26 14:06:06 字數 1994 閱讀 6463

關於sql資料庫裡日期的跨年處理:

讀取本週和上週紀錄時,涉及跨年資料要特殊處理:

資料庫裡週數儲存 1-52周。

按照sql函式取得週數時會出現53的問題。

寫入資料庫時要處理州週為53的情況,

week=53 則當作下1年處理

nian=nian+1

week=1

本週:set datefirst 1 -- 設定周一為一周的第一天

declare @week_year int

set @week_year = year(getdate())

declare @week smallint-- 第幾周

select @week = datepart(week,getdate())

if(@week=53)

begin

set @week_year=@week_year+1

set @week=1

end上週:

set datefirst 1 -- 設定周一為一周的第一天

declare @last_week_year int

set @last_week_year = year(getdate())

declare @last_week smallint-- 第幾周

select @last_week = datepart(week,getdate())

if(@last_week=1)

begin

set @last_week_year=@last_week_year-1

set @last_week=52

endelse

begin

set @last_week=@last_week-1

end上上週:

set datefirst 1 -- 設定周一為一周的第一天

declare @last_last_week_year int

set @last_last_week_year = year(getdate())

declare @last_last_week smallint-- 第幾周

select @last_last_week = datepart(week,getdate())

if(@last_last_week=1)

begin

set @last_last_week_year=@last_last_week_year-1

set @last_last_week=51

endelse if(@last_last_week=2)

begin

set @last_last_week_year=@last_last_week_year-1

set @last_last_week=52

endelse

begin

set @last_last_week=@last_last_week-2

end本月:

declare @today_year int

declare @today_month int

set @today_year = year(getdate())

set @today_month = month(getdate())

上月:declare @last_month_year int

declare @last_month int

set @last_month_year = year(getdate())

set @last_month = month(getdate())

if (@last_month = 1)

begin

set @last_month = 12

set @last_month_year =@last_month_year -1

end

else if (@last_month != 1)

begin

set @last_month = @last_month-1

end

sql中日期時間相關函式

增加日期 date add adddate select date add 2020 11 04 interval 31day date 輸出 2020 12 05 select adddate 2020 11 04 31 date 輸出 2020 12 05計算兩個時間差 timestampdif...

sql中日期操作

1.看到乙個帖子,裡面日期操作函式挺多,方法技巧也挺好,學習了。declare s date select s 2012 01 01 定義開始日期 select cast datepart yy,dateadd dd,number,s as varchar 4 年 cast datepart mm,...

Mysql中日期處理

相信大家在專案中或多或少都會使用到日期比較這個功能,下面這些mysql函式可以滿足你的需求了 比較大小 比較兩個日期相隔的天數 將前面的日期減去後面的日期,忽略時分秒 結果是 6 select datediff 2017 7 8 15 24 08 2017 07 02 篩選出日期大於 2017 7 ...