校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > SQLite3中的日期時間函數(shù)使用小結

SQLite3中的日期時間函數(shù)使用小結

熱門標簽:高德地圖標注電話怎么沒了 無錫梁溪公司怎樣申請400電話 電話機器人錄音師薪資 智能電銷機器人教育 北京智能外呼系統(tǒng)供應商家 奧維地圖標注字體大小修改 孝感銷售電銷機器人廠家 中國地圖標注省份用什么符號 江西穩(wěn)定外呼系統(tǒng)供應商


復制代碼 代碼如下:

import sqlite3
conn = sqlite3.connect('/tmp/sqlite.db')
cur = conn.cursor()

接下來干嘛呢?建一張表吧。這里需要注意的是,SQLite不支持在創(chuàng)建表的同時創(chuàng)建索引,所以要分兩步走,先創(chuàng)建表然后再創(chuàng)建索引
復制代碼 代碼如下:
create_table_stmt = '''CREATE TABLE IF NOT EXISTS test_table (
 id INTEGER PRIMARY KEY AUTOINCREMENT,
 duration INTEGER,
 event_date TEXT,
 parameter TEXT );'''

create_index = 'CREATE INDEX IF NOT EXISTS idx_id ON test_table (id);'
cur.execute(create_table_stmt)
cur.execute(create_index)
conn.commit()

然后往里面插一點數(shù)據(jù)吧,SQLite只支持5種基本的數(shù)據(jù)類型

復制代碼 代碼如下:

NULL. The value is a NULL value    
INTEGER. The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value
REAL. The value is a floating point value, stored as an 8-byte IEEE floating point number
TEXT. The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16LE)
BLOB. The value is a blob of data, stored exactly as it was input

問題來了,SQLite的時間和日期類型在哪里?原來SQLite可以把時間日期保存在一下幾種數(shù)據(jù)類型里面

復制代碼 代碼如下:

TEXT as ISO8601 strings ('YYYY-MM-DD HH:MM:SS.SSS').
REAL as Julian day numbers, the number of days since noon in Greenwich on November 24, 4714 B.C. according to the proleptic Gregorian calendar.
INTEGER as Unix Time, the number of seconds since 1970-01-01 00:00:00 UTC.

insert_stmt = 'insert into test_table values (?, ?, ?)'
record = (123, '2011-11-30 12:34:56', 'hello world')
cur.execute( insert_stmt, record )
conn.commit()


把日期保存為字符串以后,不能直接拿出來直接當日期用,在用之前要調用SQLite的date函數(shù)
例如找前一天存進去的數(shù)據(jù):
復制代碼 代碼如下:

SELECT
 id,
 duration,
 event_date,
 parameter
 FROM test_table
WHERE
 DATE(event_date) = DATE('now', '-1 day', 'localtime')
ORDER BY id, event_date

查看表結構 select * from sqlite_master
查看表信息 PRAGMA table_info (table_name)

SQLite中的時間日期函數(shù)

SQLite包含了如下時間/日期函數(shù):

復制代碼 代碼如下:

datetime() .......................  產生日期和時間
date()  ........................... 產生日期
time()  ........................... 產生時間
strftime() .......................  對以上三個函數(shù)產生的日期和時間進行格式化

datetime()的用法是:datetime(日期/時間,修正符,修正符...)
date()和time()的語法與datetime()相同。

在時間/日期函數(shù)里可以使用如下格式的字符串作為參數(shù):

復制代碼 代碼如下:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
HH:MM
HH:MM:SS
now                                 # 其中now是產生現(xiàn)在的時間。

舉例(寫這個筆記的時間是2006年10月17日晚8點到10點,北京時間):

復制代碼 代碼如下:

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

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

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

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

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

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

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

# 盡管第2個參數(shù)加上了10個小時,但是卻被第3個參數(shù) start of day 把時間歸零到00:00:00
# 隨后的第4個參數(shù)在00:00:00的基礎上把時間增加了10個小時變成了10:00:00。
select datetime('now', '+10 hour', 'start of day', '+10 hour');
結果:2006-10-17 10:00:00

# 把格林威治時區(qū)轉換成本地時區(qū)。
select datetime('now', 'localtime');
結果:2006-10-17 21:21:47

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


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

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

strftime() 的用法舉例如下:

復制代碼 代碼如下:

select strftime('%Y/%m/%d %H:%M:%S', 'now', 'localtime');

結果:2006/10/17 21:41:09

您可能感興趣的文章:
  • Android開發(fā)之SQLite的使用方法
  • SQLite 中文指南之FAQ
  • SQLite中的B-Tree實現(xiàn)細節(jié)分析
  • sqlite中文亂碼問題原因分析及解決
  • sqlite3 top的查詢及l(fā)imit語法介紹
  • SQLite優(yōu)化方法
  • Sqlite 常用函數(shù) 推薦
  • SQLite 錯誤碼整理
  • sQlite常用語句以及sQlite developer的使用與注冊

標簽:荊州 阜陽 臨滄 齊齊哈爾 泰州 海北 那曲 通化

巨人網絡通訊聲明:本文標題《SQLite3中的日期時間函數(shù)使用小結》,本文關鍵詞  SQLite3,中的,日期,時間,函數(shù),;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《SQLite3中的日期時間函數(shù)使用小結》相關的同類信息!
  • 本頁收集關于SQLite3中的日期時間函數(shù)使用小結的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 永泰县| 靖边县| 金阳县| 乐陵市| 丰城市| 资阳市| 隆回县| 神池县| 阿克苏市| 承德县| 银川市| 杭锦后旗| 余庆县| 札达县| 苍溪县| 铁力市| 大丰市| 赣榆县| 谢通门县| 彭阳县| 张家界市| 肇东市| 达拉特旗| 阿巴嘎旗| 通河县| 大厂| 天等县| 彭山县| 固原市| 福鼎市| 江陵县| 图片| 潜江市| 南投县| 饶阳县| 万宁市| 伊春市| 彩票| 五河县| 乌拉特中旗| 吉隆县|