SQLite 的日期時間函式 筆記

2022-02-11 00:56:22 字數 2594 閱讀 7067

這篇文章是根據 sqlite 官方 wiki 裡的內容翻譯,如果有什麼翻譯不當的地方希望大家指出,畢竟我的英文水平實在很差。 sqlite 包括以下五個時間函式:

date(日期時間字串, 修正符, 修正符, ……)

time(日期時間字串, 修正符, 修正符, ……)

datetime(日期時間字串, 修正符, 修正符, ……)

julianday(日期時間字串, 修正符, 修正符, ……)

strftime(日期時間格式, 日期時間字串, 修正符, 修正符, ……)

上述五個函式需要乙個日期時間字串做引數,後面可以跟零到多個修正符引數。而 strftime() 函式還需要乙個日期時間格式字串做第乙個引數。

date() 函式返回乙個以 「yyyy-mm-dd」 為格式的日期;

time() 函式返回乙個以 「yyyy-mm-dd hh:mm:ss」 為格式的日期時間;

julianday() 函式返回乙個天數,從格林威治時間西元前2023年11月24號開始算起;

strftime() 函式返回乙個經過格式話的日期時間,它可以用下面的符號對日期和時間進行格式化:

%d  一月中的第幾天 01-31

%f  小數形式的秒,ss.ssss

%h  小時 00-24

%j  一年中的第幾天 01-366

%j  julian day numbers

%m  月份 01-12

%m  分鐘 00-59

%s  從 1970-01-01日開始計算的秒數

%s  秒 00-59

%w  星期,0-6,0是星期天

%w  一年中的第幾周 00-53

%y  年份 0000-9999

%%  % 百分號

其他四個函式都可以用 strftime() 函式來表示:

date(…)         ->   strftime(「%y-%m-%d」,…)

time(…)         ->   strftime(「%h:%m:%s」,…)

datetime(…)     ->   strftime(「%y-%m-%d %h:%m:%s」,…)

julianday(…)    ->   strftime(「%j」,…)

日期時間字串

可以用以下幾種格式:

yyyy-mm-dd

yyyy-mm-dd hh:mm

yyyy-mm-dd hh:mm:ss

yyyy-mm-dd hh:mm:ss.sss

yyyy-mm-ddthh:mm

yyyy-mm-ddthh:mm:ss

yyyy-mm-ddthh:mm:ss.sss

hh:mm

hh:mm:ss

hh:mm:ss.sss

nowdddd.dddd

在第五種到第七種格式中的「t」是乙個分割日期和時間的字元;第八種到第十種格式只代表2000-01-01日的時間,第十一種格式的』now』表示返回乙個當前的日期和時間,使用格林威治時間(utc);第十二種格式表示乙個 julian day numbers。

修正符

nnn days

nnn hours

nnn minutes

nnn.nnnn seconds

nnn months

nnn years

start of month

start of year

start of week

start of day

weekday n

unixepoch

localtime

utc前六個修正符就是簡單的增加指定數值的時間和日期;第七到第十個修正符表示返回當前日期的開始;第十乙個修正符表示返回下乙個星期是n的日期和時間;第十二個修正符表示返回從1970-01-01開始算起的秒數;第十三個修正符表示返回本地時間。

下面舉一些例子:

計算機當前時間

select date(『now』)

計算機當前月份的最後一天

select date(『now』,』start of month』,』+1 month』,』-1 day』)

計算unix 時間戳1092941466表示的日期和時間

select datetime(『1092941466』,』unixepoch』)

計算 unix 時間戳1092941466 表示的本地日期和時間

select datetime(『1092941466』,』unixepoch』,』localtime』)

計算機當前unix 時間戳

select strftime(『%s』,』now』)

兩個日期之間相差多少天

select jolianday(『now』)-jolianday(『1981-12-23』)

兩個日期時間之間相差多少秒

select julianday('now')*86400 - julianday('2004-01-01 02:34:56')*86400

計算今年十月份第乙個星期二的日期

select date('now','start of year','+9 months','weekday 2');

sqlite日期時間函式

sqlite支援以下五個日期和時間函式 函式 描述date timestring,modifier,modifier,以 yyyy mm dd 格式返回日期,如 2020 07 26 time timestring,modifier,modifier,以 hh mm ss 格式返回時間,如 21 0...

SQLite的日期時間函式

1.date 日期時間字串,修正符,修正符,2.time 日期時間字串,修正符,修正符,3.datetime 日期時間字串,修正符,修正符,4.julianday 日期時間字串,修正符,修正符,5.strftime 日期時間格式,日期時間字串,修正符,修正符,上述五個函式需要乙個日期時間字串做引數,...

python日期函式筆記

coding utf 8 from datetime import datetime import time 取當前時間,返回string型別 now str time.strftime y m d h m s print type now str print now str print 取當前時間...