資源描述:
《sqlite中時(shí)間函數(shù)的使用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、sqlite時(shí)間函數(shù)及時(shí)間處理SQLite分頁顯示:Select*FromnewsorderbyiddescLimit10Offset10這篇文章是根據(jù)SQLite官方WIKI里的內(nèi)容翻譯,如果有什么翻譯不當(dāng)?shù)牡胤较M蠹抑赋?,畢竟我的英文水平?shí)在很差。SQLite包括以下五個(gè)時(shí)間函數(shù):date(日期時(shí)間字符串,修正符,修正符,……)time(日期時(shí)間字符串,修正符,修正符,……)datetime(日期時(shí)間字符串,修正符,修正符,……)julianday(日期時(shí)間字符串,修正符,修正符,……)strftime(日期時(shí)間格式,日期時(shí)間字符串,修正符,修正符,……
2、)上述五個(gè)函數(shù)需要一個(gè)日期時(shí)間字符串做參數(shù),后面可以跟零到多個(gè)修正符參數(shù)。而strftime()函數(shù)還需要一個(gè)日期時(shí)間格式字符串做第一個(gè)參數(shù)。date()函數(shù)返回一個(gè)以“YYYY-MM-DD”為格式的日期;time()函數(shù)返回一個(gè)以“YYYY-MM-DDHH:MM:SS”為格式的日期時(shí)間;julianday()函數(shù)返回一個(gè)天數(shù),從格林威治時(shí)間公元前4714年11月24號(hào)開始算起;strftime()函數(shù)返回一個(gè)經(jīng)過格式話的日期時(shí)間,它可以用下面的符號(hào)對日期和時(shí)間進(jìn)行格式化:%d一月中的第幾天01-31%f小數(shù)形式的秒,SS.SSSS%H小時(shí)00-24%j一年中
3、的第幾天01-366%JJulianDayNumbers%m月份01-12%M分鐘00-59%s從1970-01-01日開始計(jì)算的秒數(shù)%S秒00-59%w星期,0-6,0是星期天%W一年中的第幾周00-53%Y年份0000-9999%%%百分號(hào)其他四個(gè)函數(shù)都可以用strftime()函數(shù)來表示:date(…)->strftime(“%Y-%m-%d”,…)time(…)->strftime(“%H:%M:%S”,…)datetime(…)->strftime(“%Y-%m-%d%H:%M:%S”,…)julianday(…)->strftime(“%J”,…)
4、日期時(shí)間字符串可以用以下幾種格式:YYYY-MM-DDYYYY-MM-DDHH:MMYYYY-MM-DDHH:MM:SSYYYY-MM-DDHH:MM:SS.SSSYYYY-MM-DDTHH:MMYYYY-MM-DDTHH:MM:SSYYYY-MM-DDTHH:MM:SS.SSSHH:MMHH:MM:SSHH:MM:SS.SSSnowDDDD.DDDD在第五種到第七種格式中的“T”是一個(gè)分割日期和時(shí)間的字符;第八種到第十種格式只代表2000-01-01日的時(shí)間,第十一種格式的’now’表示返回一個(gè)當(dāng)前的日期和時(shí)間,使用格林威治時(shí)間(UTC);第十二種格式表示一
5、個(gè)JulianDayNumbers。修正符日期和時(shí)間可以使用下面的修正符來更改日期或時(shí)間:NNNdaysNNNhoursNNNminutesNNN.NNNNsecondsNNNmonthsNNNyearsstartofmonthstartofyearstartofweekstartofdayweekdayNunixepochlocaltimeutc前六個(gè)修正符就是簡單的增加指定數(shù)值的時(shí)間和日期;第七到第十個(gè)修正符表示返回當(dāng)前日期的開始;第十一個(gè)修正符表示返回下一個(gè)星期是N的日期和時(shí)間;第十二個(gè)修正符表示返回從1970-01-01開始算起的秒數(shù);第十三個(gè)修正符表
6、示返回本地時(shí)間。下面舉一些例子:計(jì)算機(jī)當(dāng)前時(shí)間SELECTdate(‘now’)計(jì)算機(jī)當(dāng)前月份的最后一天SELECTdate(‘now’,’startofmonth’,’+1month’,’-1day’)計(jì)算UNIX時(shí)間戳1092941466表示的日期和時(shí)間SELECTdatetime(‘1092941466’,’unixepoch’)計(jì)算UNIX時(shí)間戳1092941466表示的本地日期和時(shí)間SELECTdatetime(‘1092941466’,’unixepoch’,’localtime’)計(jì)算機(jī)當(dāng)前UNIX時(shí)間戳SELECTstrftime(‘%s’,’
7、now’)兩個(gè)日期之間相差多少天SELECTjolianday(‘now’)-jolianday(‘1981-12-23’)兩個(gè)日期時(shí)間之間相差多少秒SELECTjulianday('now')*86400-julianday('2004-01-0102:34:56')*86400計(jì)算今年十月份第一個(gè)星期二的日期SELECTdate('now','startofyear','+9months','weekday2');得到年strftime(‘%y’,'2008-4-28')得到月strftime(‘%m’,'2008-4-28')同樣,我們也可以通過strf
8、time來得到其它所要的信息,但是要記