sqlite3获取日和周python的数量

时间:2018-10-21 21:09:42

标签: python sql datetime sqlite

我想获取星期几(将星期三设置为一周的第一天)。我使用sqlite3创建数据库。

示例数据库Order

name  time
A0001 10/1/16
A0002 10/2/16
A0003 10/5/16
A0004 10/16/16
A0005 10/8/16
A0006 10/17/16
A0007 10/23/16

import sqlite3
import pandas as pd

%sql sqlite://
select name, strftime('%w',time) as weekday,strftime('%W',time) as weeknumber
from Order

似乎strftime无效。weekdayweeknumber全部返回到None

2 个答案:

答案 0 :(得分:0)

我以前也有这个问题。这是因为DBMS无法识别此日期字符串格式。我通过使用一种sqlite日期格式解决了此问题: https://www.sqlite.org/lang_datefunc.html

如果表中有很多记录,则可以编写一个重新格式化所有记录的脚本。否则,您可以再次填写表格。

答案 1 :(得分:0)

您可以使用dateutil解析器将文本文件中的日期转换为标准格式。

>>> from dateutil.parser import *
>>> for line in open('rya.txt'):
...     line = line.strip()
...     
...     item = line.split()
...     print(item[0], str(parse(item[1])).split()[0])
...     
A0001 2016-10-01
A0002 2016-10-02
A0003 2016-10-05
A0004 2016-10-16
A0005 2016-10-08
A0006 2016-10-17
A0007 2016-10-23

这样做,您可以使用datetime来获取每个日期的星期几和星期几。

或者,您可以使用Python函数将类似的逻辑应用于数据库表本身。