總之,如何分鐘增加從位於另一個表整數的日期時間,在一個select語句,通過加入他們,在sqlite3的?在視圖中連接兩個表時sqlite3的日期操作?
我有一個sqlite3的分貝:
表P(INT ID,...,詮釋分鐘) 和表S(INT ID,INT的p_id,日期時間開始)
我想以產生一個觀點,即通過接合S.p_id = P.id
給我PS(S.id,P.id,S.start + P.minutes)的問題是,如果我生成從所述查詢應用程序,我可以做的東西,如:
select datetime('2010-04-21 14:00', '+20 minutes');
2010-04-21 14:20:00
通過創建應用程序中的字符串「20分鐘」,然後將其傳遞給SQLITE。不過,我不能找到一種方法來創建這個字符串的選擇本身:
select p.*,datetime(s.start_at, formatstring('+%s minutes', p.minutes)) from p,s where s.p_id=p.id;
因爲SQLite作爲迄今爲止文檔講述,不提供任何字符串格式的功能,我也能看到表達的任何替代方法日期修飾符。
在MySQL中,日期修飾符不是基於字符串的,所以它的實際工作:
mysql> create table p (id integer, minutes integer);
mysql> create table s (id integer, p_id integer, start datetime);
mysql> insert into p values (1, 10);
mysql> insert into p values (2, 15);
mysql> insert into s values (1, 1, '2008-12-31 14:00');
mysql> insert into s values (2, 1, '2008-12-31 15:00');
mysql> insert into s values (3, 2, '2008-05-10 13:30');
mysql> SELECT p.*,(s.start + INTERVAL p.minutes MINUTE) FROM p,s WHERE p.id=s.p_id;
+------+---------+---------------------------------------+
| id | minutes | (s.start + INTERVAL p.minutes MINUTE) |
+------+---------+---------------------------------------+
| 1 | 10 | 2008-12-31 14:10:00 |
| 1 | 10 | 2008-12-31 15:10:00 |
| 2 | 15 | 2008-05-10 13:45:00 |
+------+---------+---------------------------------------+
3 rows in set (0.02 sec)
連接似乎是要走的路。然而,+不是正確的運算符,它產生了一個空的結果。 – duncan 2010-05-01 21:54:42
+是數字加法。你必須使用||用於字符串連接。 – dan04 2010-05-02 17:09:19
@duncan和@ dan04:我不知道如何正確操作,謝謝。 – newtover 2010-05-02 19:42:19