• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            sqlite時間函數及時間處理

            sqlite時間函數及時間處理
            SQLite
            分頁顯示:Select * From news order by id desc Limit 10 Offset 10
            這篇文章是根據 SQLite 官方 WIKI 里的內容翻譯,如果有什么翻譯不當的地方希望大家指出,畢竟我的英文水平實在很差。 SQLite 包括以下五個時間函數:

            date(日期時間字符串, 修正符, 修正符, ……)
            time(
            日期時間字符串, 修正符, 修正符, ……)
            datetime(
            日期時間字符串, 修正符, 修正符, ……)
            julianday(
            日期時間字符串, 修正符, 修正符, ……)
            strftime(
            日期時間格式, 日期時間字符串, 修正符, 修正符, ……)
            上述五個函數需要一個日期時間字符串做參數,后面可以跟零到多個修正符參數。而 strftime() 函數還需要一個日期時間格式字符串做第一個參數。

            date() 函數返回一個以 “YYYY-MM-DD” 為格式的日期;
            time()
            函數返回一個以 “YYYY-MM-DD HH:MM:SS” 為格式的日期時間;
            julianday()
            函數返回一個天數,從格林威治時間公元前47141124號開始算起;
            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-60是星期天
            %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
            now
            DDDD.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');
            得到年
            strftime(
            %y,'2008-4-28')
            得到月
            strftime(
            %m,'2008-4-28')
            同樣,我們也可以通過strftime來得到其它所要的信息,但是要記得,給時間加引號

             1.
            select datetime('now');
            結果:2006-10-17 12:55:54

            2.
            select datetime('2006-10-17');
            結果:2006-10-17 12:00:00

            3.
            select datetime('2006-10-17 00:20:00','+1 hour','-12 minute');
            結果:2006-10-17 01:08:00

            4.
            select date('2006-10-17','+1 day','+1 year');
            結果:2007-10-18

            5.
            select datetime('now','start of year');
            結果:2006-01-01 00:00:00

            6.
            select datetime('now','start of month');
            結果:2006-10-01 00:00:00

            7.
            select datetime('now','start of day');
            結果:2006-10-17 00:00:00

            8.
            select datetime('now','+10 hour','start of day','+10 hour');
            結果:2006-10-17 10:00:00

            9.
            select datetime('now','localtime');
            結果:2006-10-17 21:21:47

            10.
            select datetime('now','+8 hour');
            結果:2006-10-17 21:24:45


            3中的+1 hour-12 minute表示可以在基本時間上(datetime函數的第一個參數)增加或減少一定時間。

            5中的start of year表示一年開始的時間。

            從例8可以看出,盡管第2個參數加上了10個小時,但是卻被第3個參數“start of day”把時間歸零到00:00:00,隨后的第4個參數在00:00:00
            的基礎上把時間增加了10個小時變成了10:00:00

            9把格林威治時區轉換成本地時區。

            10把格林威治時區轉換成東八區。

            strftime()函數可以把YYYY-MM-DD HH:MM:SS格式的日期字符串轉換成其它形式的字符串。
            strftime()
            的語法是strftime(格式, 日期/時間, 修正符, 修正符, ...)

            它可以用以下的符號對日期和時間進行格式化:
            %d
            月份, 01-31
            %f
            小數形式的秒,SS.SSS
            %H
            小時, 00-23
            %j
            算出某一天是該年的第幾天,001-366
            %m
            月份,00-12
            %M
            分鐘, 00-59
            %s
            197011到現在的秒數
            %S
            , 00-59
            %w
            星期, 0-6 (0是星期天)
            %W
            算出某一天屬于該年的第幾周, 01-53
            %Y
            , YYYY
            %%
            百分號

            strftime()的用法舉例如下:
            11.
            select strftime('%Y.%m.%d %H:%M:%S','now','localtime');
            結果:2006.10.17 21:41:09

            11用圓點作為日期的分隔附,并把時間轉換為當地的時區的時間

             

            posted on 2009-06-23 15:06 肥仔 閱讀(2266) 評論(1)  編輯 收藏 引用 所屬分類: 數據庫

            評論

            # re: sqlite時間函數及時間處理  回復  更多評論   

            SQLITE好像沒有DATETIME類型字段,只有DATE或TIME,還有時間戳TIMESTAMP
            2010-05-17 16:18 | vcool
            亚洲精品无码久久久久去q| 无码八A片人妻少妇久久| 亚洲精品第一综合99久久| 日本国产精品久久| 免费精品久久天干天干| 无码超乳爆乳中文字幕久久| 久久线看观看精品香蕉国产| 四虎影视久久久免费| 久久天天躁狠狠躁夜夜avapp| 91久久精一区二区三区大全| 青青草原综合久久大伊人| 久久久久免费看成人影片| 久久久久国产精品嫩草影院| 国产激情久久久久久熟女老人| 久久91精品国产91久久麻豆 | 香蕉久久夜色精品国产尤物| 久久午夜无码鲁丝片秋霞| 亚洲国产精久久久久久久| 2021国内久久精品| 久久激情亚洲精品无码?V| 九九精品99久久久香蕉| 久久无码国产专区精品| 亚洲乱亚洲乱淫久久| 久久精品毛片免费观看| 一本大道久久东京热无码AV| 国产女人aaa级久久久级| 九九久久自然熟的香蕉图片| 久久久久波多野结衣高潮| 久久亚洲中文字幕精品一区四| 999久久久免费国产精品播放| 色综合久久久久无码专区 | 久久精品国产免费观看三人同眠| segui久久国产精品| 久久久精品一区二区三区| 国产精品久久久久久| 久久青青草原亚洲av无码app | 99久久精品国产一区二区| 久久久久久a亚洲欧洲aⅴ| 7777久久亚洲中文字幕| 国内精品久久久久久久97牛牛 | 久久91综合国产91久久精品|