SQL 常用時間處理

2022-09-06 19:18:09 字數 1834 閱讀 7961

本文適用於sql server資料庫的t-sql語法,我只是個搬運工,進行簡單歸類,微軟官網國內可以直接訪問,我就不截圖和專門整理了,想看詳情,直接點選函式

日期轉換:   

convert(varchar(20),getdate(),120)  --其中20可以替換成自己想要的長度,進行一定程度的擷取,其中的120可以根據需要替換成需要的styleid

萌新注意:datetime型別在沒有必要的情況下,不要胡亂轉換,比如,2020-11-26 16:41:56代表和20/11/26 16:41:56,如果是datetime型別的話,表示的是datetime型別的同乙個值,可以直接進行簡單運算,但如果多此一舉轉換成varchar之後再進行轉換或運算,就容易死了

日期運算:   

dateadd(dd,10,'20201126')

或者dateadd(dd,10,getdate())      --在當前時間的基礎上加10天(dd)

參考官網:

日期差值:   

datediff(day, @startdate, @enddate)  --

計算兩個時間的差,並返回相差的天數(day)

獲取日期中的指定部分:

datepart(year, @datetime)

年月日就不說了,太過無腦,格外需要說的有兩個:

week,計算@datetime是一年中的第幾周,這是很多人用這個函式的主要目的之一,不要傻傻的自己計算,我就幹過,也見過有人這干過

weekday,計算@datetime所在的天是一周中的第幾天,這個往往是用來計算週幾了,但格外需要注意的是,週日是一周中的第一天,週六是第七天,別因為平時把週日叫做週末,就習慣性的給自己挖坑

時間戳:   先上結果,再解釋

select

datediff(s, '

1970-01-01 00:00:00

', getutcdate())  --

普通時間轉時間戳

select

dateadd(s, 1606383910, '

1970-01-01 08:00:00

')  --

時間戳轉普通時間

select

cast(datediff(s, '

1970-01-01 00:00:00

', getutcdate()) as

bigint)*

1000

+datepart(ms,getutcdate())  --

普通時間轉時間戳(毫秒)

select

dateadd(ms,1606384726520

-cast(1606384726520

/1000

asbigint)*

1000,dateadd(s, 1606384726520

/1000, '

1970-01-01 08:00:00

'))  --

時間戳轉普通時間(毫秒)

解釋1:utc時間為世界標準時間,1970-01-01 00:00:00是unix時間紀元,時間戳是世界標準時間距時間紀元的秒數,而我國位於東八區,使用的是utc+8:00的時間,所以時間戳轉換為我國的普通時間的時候,就需要加上8小時的時區差值。

解釋2:毫秒時間戳轉換之所以麻煩,其一,是因為datediff與dateadd的返回值是int,而時間戳的秒數*1000變為毫秒時,超過了int的最大值,需要用bigint;

其二,秒級別的時間戳轉換忽略了毫秒的精度,有由於無法直接轉換為bigint,要先轉換為秒,這就導致丟失精度,所以,在毫秒級別時,需要專門加上毫秒的值

常用時間處理05

pandas中,to datetime 函式是用來進行獲取時間和進行時間資料操作的函式。dates pd.to datetime pd.series 1989 8 18 13 14 55 1995 2 16 format y m d h m s 根據面臨的資料格式不同,還有以下幾種常用的方法 pri...

常用時間日期處理總結

時間處理是專案中不可缺少的,下面整理了一些常用時間處理的用法,記錄一下。1.獲取當前時間 1 function getnowtime 2.時間與天數相加 1 function gettimeadddays time,days 3.獲取並格式化日期 年 月 日 1 function getformat...

PHP date函式常用時間處理方法

複製 如下 echo 今天 date y m d echo 昨天 date y m d strtotime 1 day echo 明天 date y m d strtotime 1 day echo 一周後 date y m d strtotime 1 week echo 一周零兩天四小時兩秒後 d...