【发布时间】:2021-01-14 03:24:59
【问题描述】:
我在 SQLite 中计算日期差异时遇到问题。
我在设置表格时将值类型设置为时间戳,但日期的计算似乎只适用于我的日期条目的第一个数字。
我尝试使用 to_date('01/01/2020', 'mm/dd/yyyy') 但它返回错误说不支持 to_date。我的代码如下,任何建议将不胜感激。
CREATE TABLE customer_join
(
id INT,
country_code VARCHAR(10),
country_descrip VARCHAR(255),
register_date TIMESTAMP,
customer_id INT,
PRIMARY KEY (id),
FOREIGN KEY (customer_id) REFERENCES customer(id)
);
CREATE TABLE customer_order
(
id INT,
item_name VARCHAR(25),
item_description VARCHAR(255),
number FLOAT(24),
order_date TIMESTAMP,
customer_id INT,
PRIMARY KEY (id),
FOREIGN KEY (customer_id) REFERENCES patient(id)
);
INSERT INTO customer_join
Values (1, 1, 'none', '1/22/2017', 100),
(2, 1, 'none', '1/23/2017', 101),
(3, 1, 'none', '1/24/2017', 102),
(4, 1, 'none', '1/25/2017', 103),
(5, 1, 'none', '1/26/2017', 104),
(6, 2, 'none', '1/27/2017', 101),
(7, 2, 'none', '1/28/2017', 106),
(8, 1, 'none', '1/29/2017', 107);
INSERT INTO customer_order
Values (1, 'A', 'none', 1, '2/23/2020', 101),
(2, 'B', 'none', 1, '3/11/2027', 100),
(3, 'B, C, D', 'none', 1, '4/10/2023', 100),
(4, 'B, C, E', 'none', 1, '4/11/2020', 100),
(5, 'R', 'none',1, '4/12/2099', 102);
SELECT (order_date - register_date) TIME_TO_ORDER
FROM customer_join cj
INNER JOIN
(SELECT customer_id , MIN(order_date) order_date
FROM customer_order
GROUP BY customer_id) co
ON cj.customer_id = co.customer_id;
代码给了我结果:
TIME_TO_ORDER
2
1
3
1
这不是我想要的。我试图弄清楚客户下第一个订单需要多长时间。有什么建议吗?
【问题讨论】:
-
你想要什么?不清楚。
-
请同时包含您的期望输出,但 MCVE 的新人值得一票...
-
我已经对您的帖子进行了一些修改,包括删除了我(我相信至少@T.Peter)认为不需要的部分。认为这是一种恭维。