Python SQLite3数据库日期与时间常见函数用法分析


Posted in Python onAugust 14, 2017

本文实例讲述了Python SQLite3数据库日期与时间常见函数。分享给大家供大家参考,具体如下:

import sqlite3
#con = sqlite3.connect('example.db')
con = sqlite3.connect(":memory:")
c = con.cursor()
# Create table
c.execute('''CREATE TABLE stocks
       (date text, trans text, symbol text, qty real, price real)''')
# Insert a row of data
c.execute("INSERT INTO stocks VALUES (?,?,?,?,?)", ('2006-03-27','BUY','RHAT',100,60.14))
# Larger example that inserts many records at a time
purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
       ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
       ('2006-04-06', 'SELL', 'IBM', 500, 53.00),
       ('2006-04-07', 'SELL', 'MSFT', 500, 74.00),
       ('2006-04-08', 'SELL', 'IBM', 500, 54.00),
       ('2006-04-09', 'SELL', 'MSFT', 500, 73.00),
       ('2006-04-10', 'SELL', 'MSFT', 500, 75.00),
       ('2006-04-12', 'SELL', 'IBM', 500, 55.00),
      ]
c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
# Save (commit) the changes
con.commit()
# Do this instead
t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
#print(c.fetchone())
#for row in c.execute('SELECT * FROM stocks ORDER BY price'):
#  print(row)
#for row in c.execute('SELECT * FROM stocks LIMIT 5 OFFSET 0'):
#  print(row)
for row in c.execute('SELECT * FROM stocks LIMIT 5 OFFSET 1'):
  print(row)
#Select Top N * From
# ====================================================================================
# SQLite 日期 & 时间
# ====================================================================================
print('='*30)
print('SQLite 日期 & 时间')
print('='*30)
# 计算当前日期
c.execute("SELECT date('now')")
print(c.fetchone())
# 计算当前月份的最后一天:
c.execute("SELECT date('now','start of month','+1 month','-1 day');")
print(c.fetchone())
# 计算给定 UNIX 时间戳 1092941466 的日期和时间:
c.execute("SELECT datetime(1092941466, 'unixepoch');")
print(c.fetchone())
# 计算给定 UNIX 时间戳 1092941466 相对本地时区的日期和时间:
c.execute("SELECT datetime(1092941466, 'unixepoch', 'localtime');")
print(c.fetchone())
# 计算当前的 UNIX 时间戳:
c.execute("SELECT datetime(1092941466, 'unixepoch', 'localtime');")
print(c.fetchone())
# 计算美国"独立宣言"签署以来的天数:
c.execute("SELECT julianday('now') - julianday('1776-07-04');")
print(c.fetchone())
# 计算从 2004 年某一特定时刻以来的秒数:
c.execute("SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');")
print(c.fetchone())
# 计算当年 10 月的第一个星期二的日期:
c.execute("SELECT date('now','start of year','+9 months','weekday 2');")
print(c.fetchone())
# 计算从 UNIX 纪元算起的以秒为单位的时间(类似 strftime('%s','now') ,不同的是这里有包括小数部分):
c.execute("SELECT (julianday('now') - 2440587.5)*86400.0;")
print(c.fetchone())
# 在 UTC 与本地时间值之间进行转换,当格式化日期时,使用 utc 或 localtime 修饰符,如下所示:
c.execute("SELECT time('12:00', 'localtime');")
print(c.fetchone())
#
c.execute("SELECT time('12:00', 'utc');")
print(c.fetchone())
con.close()
# ====================================================================================
# SQLite 常用函数
# ====================================================================================
print('='*30)
print('SQLite 常用函数')
print('='*30)
con = sqlite3.connect(":memory:")
c = con.cursor()
# Create table
c.execute('''CREATE TABLE COMPANY
      (ID integer, NAME text, AGE integer, ADDRESS text, SALARY real)''')
# Larger example that inserts many records at a time
purchases = [(1,'Paul',32,'California',20000.0),
       (2,'Allen',25,'Texas',15000.0),
       (3,'Teddy',23,'Norway',20000.0),
       (4,'Mark',25,'Rich-Mond',65000.0),
       (5,'David',27,'Texas',85000.0),
       (6,'Kim',22,'South-Hall',45000.0),
       (7,'James',24,'Houston',10000.0)]
c.executemany('INSERT INTO COMPANY VALUES (?,?,?,?,?)', purchases)
# Save (commit) the changes
con.commit()
# 返回数据库表最后 n 行记录
# 先计算一个数据库表中的行数
c.execute("SELECT count(*) FROM COMPANY;")
last = c.fetchone()[0]
n = 5
c.execute("SELECT * FROM COMPANY LIMIT ? OFFSET ?;", (n, last-n))
for row in c:
  print(row)
# 计算一个数据库表中的行数
c.execute("SELECT count(*) FROM COMPANY;")
print(c.fetchone())
# 选择某列的最大值
c.execute("SELECT max(salary) FROM COMPANY;")
print(c.fetchone())
# 选择某列的最小值
c.execute("SELECT min(salary) FROM COMPANY;")
print(c.fetchone())
# 计算某列的平均值
c.execute("SELECT avg(salary) FROM COMPANY;")
print(c.fetchone())
# 为一个数值列计算总和
c.execute("SELECT sum(salary) FROM COMPANY;")
print(c.fetchone())
# 返回一个介于 -9223372036854775808 和 +9223372036854775807 之间的伪随机整数
c.execute("SELECT random() AS Random;")
print(c.fetchone())
# 返回数值参数的绝对值
c.execute("SELECT abs(5), abs(-15), abs(NULL), abs(0), abs('ABC');")
print(c.fetchone())
# 把字符串转换为大写字母
c.execute("SELECT upper(name) FROM COMPANY;")
print(c.fetchone())
# 把字符串转换为小写字母
c.execute("SELECT lower(name) FROM COMPANY;")
print(c.fetchone())
# 返回字符串的长度
c.execute("SELECT name, length(name) FROM COMPANY;")
print(c.fetchone())
# 返回 SQLite 库的版本
c.execute("SELECT sqlite_version() AS 'SQLite Version';")
print(c.fetchone())
#
c.execute("SELECT CURRENT_TIMESTAMP;")
print(c.fetchone())

Python 相关文章推荐
Python写的一个简单DNS服务器实例
Jun 04 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
Mar 30 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
全面了解Nginx, WSGI, Flask之间的关系
Jan 09 Python
利用scrapy将爬到的数据保存到mysql(防止重复)
Mar 31 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 Python
python 命令行传入参数实现解析
Aug 30 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 Python
python引入其他文件夹下的py文件具体方法
May 23 Python
Pytorch反向传播中的细节-计算梯度时的默认累加操作
Jun 05 Python
python itchat实现微信自动回复的示例代码
Aug 14 #Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 #Python
django 创建过滤器的实例详解
Aug 14 #Python
django创建自定义模板处理器的实例详解
Aug 14 #Python
Python微信库:itchat的用法详解
Aug 14 #Python
Python实现的概率分布运算操作示例
Aug 14 #Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 #Python
You might like
php的curl实现get和post的代码
2008/08/23 PHP
PHP base64+gzinflate压缩编码和解码代码
2008/10/03 PHP
php 获得汉字拼音首字母的函数
2009/08/01 PHP
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
Jquery AJAX POST与GET之间的区别
2013/11/14 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
JS更改select内option属性的方法
2015/10/14 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
React 组件间的通信示例
2018/06/14 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
Python数据结构之翻转链表
2017/02/25 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
人事助理岗位职责
2013/11/18 职场文书
高二英语教学反思
2014/01/19 职场文书
家长给小学生的评语
2014/01/30 职场文书
机电专业求职信
2014/06/14 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
网络妈妈观后感
2015/06/08 职场文书
观看《杨善洲》宣传教育片心得体会
2016/01/23 职场文书
pytorch--之halfTensor的使用详解
2021/05/24 Python
如何用Python搭建gRPC服务
2021/06/30 Python
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android