【发布时间】:2020-03-23 13:47:05
【问题描述】:
目标
将我的日期列数据作为日期时间导入到我的 sqlite3 表中
问题
从我在网上阅读的内容看来,在导入sqlite3 时需要将“日期”数据转换为datetime,因为数据类型的唯一选项是text、integer、blob 和real。我进行了审查并尝试使用 strftime 命令 - 我理解它应该能够转换它 - 但从我在网上看到的人们在 sql 查询中引用它而不是导入。有人可以确认我正在做的事情是正确的还是我做错了什么我应该如何CAST 日期输入?抱歉,如果这是一个基本问题,这是我第一次尝试使用数据构建自己的 sql 表。
注意事项
我知道我的日期列的 CAST 行会抛出错误,因为它需要 AS 命令。
脚本
sqlite3 -batch ~/.databases/mydatabase.db <<EOF
CREATE TABLE IF NOT EXISTS mydata(
Client TEXT NOT NULL,
Date TEXT NOT NULL,
Platform TEXT,
CREATE TEMPORARY TABLE data(
Client TEXT NOT NULL,
Date INTEGER NOT NULL,
Platform TEXT,
.mode tabs
.separator \t
.import tabledata.tsv data
INSERT INTO mydata_data (Client, Date, Platform)
SELECT
CAST (Client AS TEXT),
CAST (strftime('%Y-%m-%d',Date)),
CAST (Platform AS TEXT)
FROM data;
EOF
日期格式
2020-03-19
2020-03-07
2020-03-20
2020-03-08
2020-03-04
2020-03-21
2020-03-22
2020-02-22
2020-02-24
【问题讨论】:
标签: sqlite