日期轉換處理相關

2021-05-22 14:42:32 字數 2839 閱讀 5074

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)

1.乙個月第一天的

select dateadd(mm, datediff(mm,0,getdate()), 0)

2.本週的星期一

select dateadd(wk, datediff(wk,0,getdate()), 0)

3.一年的第一天

select dateadd(yy, datediff(yy,0,getdate()), 0)

4.季度的第一天

select dateadd(qq, datediff(qq,0,getdate()), 0)

5.當天的半夜

select dateadd(dd, datediff(dd,0,getdate()), 0)

6.上個月的最後一天

select dateadd(ms,-3,dateadd(mm, datediff(mm,0,getdate()), 0))

7.去年的最後一天

select dateadd(ms,-3,dateadd(yy, datediff(yy,0,getdate()), 0))

8.本月的最後一天

select dateadd(ms,-3,dateadd(mm, datediff(m,0,getdate())+1, 0))

9.本年的最後一天

select dateadd(ms,-3,dateadd(yy, datediff(yy,0,getdate())+1, 0))

10.本月的第乙個星期一

select dateadd(wk, datediff(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)

返回當前日期和時間

通過函式getdate(),你可以獲得當前的日期和時間。函式getdate()可以用來作為datedime型字段的預設值。這對插入記錄時儲存當時的時間是有用的。要建立乙個表,其中的記錄包含有當前的日期和時間,可以新增乙個datetime型字段,指定其預設值為函式getdate()的返回值,就象這樣:

create table site_log (

username varchar(40),

useractivity varchar(100),

entrydate datetime default getdate())

轉換日期和時間

函式getdate()的返回值在顯示時只顯示到秒。實際上,sql sever內部時間可以精確到毫秒級(確切地說,可以精確到3.33毫秒)。

要得到不同格式的日期和時間,你需要使用函式convert()。例如,當下面的這個語句執行時,顯示的時間將包括毫秒:

select convert(varchar(30),getdate(),9)

Date相關日期格式轉換

var mydate new date mydate.getyear 獲取當前年份 2位 mydate.getfullyear 獲取完整的年份 4位,1970 mydate.getmonth 獲取當前月份 0 11,0代表1月 所以獲取當前月份是mydate.getmonth 1 mydate.ge...

日期處理與進製轉換

這篇文章將介紹常見的日期處理與進製轉換問題。以題目為例 題目描述 有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。輸入有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 輸出每組資料輸出一行,即日期差值 樣例輸入20130101 20130105...

日期時間處理相關工具類

kpdatetool.h kpdatetool created by 劉鯤鵬 on 2018 2 28.日期時間處理相關工具類 import inte ce kpdatetool nsobject 獲取當前時間的時間戳 nstimeinterval nstimeinterval currenttim...