在做ClinicOS的時(shí)候遇到一個(gè)問(wèn)題,在保存病歷登記時(shí)間時(shí),我使用了“CURRENT_TIMESTAMP”,但這有個(gè)問(wèn)題,它返回的是UTC Time,這對(duì)我們中國(guó)人沒(méi)啥用,一直希望能想辦法將它轉(zhuǎn)為localtime。今天剛好有空,所以去查了查Sqlite的Mail List,果然也有人遇到了這個(gè)問(wèn)題,我從一篇名為《translate time comparison statement》(http://www.mail-archive.com/sqlite-users@sqlite.org/msg12350.html)中看到這樣的回復(fù):
Mark Wyszomierski wrote:

You may want

WHERE julianday(date('now')) - julianday(date(arrival_date)) > 7

Mark,

You should still use the 'localtime' modifier on the 'now' value if your timestamps are local time since 'now' always returns UTC times.
WHERE julianday(date('now', 'localtime')) - julianday(date(arrival_date)) > 7

嘿嘿,看來(lái)如果想得到一個(gè)符合本機(jī)區(qū)域設(shè)置的當(dāng)前時(shí)間,必須用date函數(shù)來(lái)轉(zhuǎn)換,
但date只函數(shù)只返回當(dāng)前日期,而我需要的是返回當(dāng)前日期及時(shí)間,所以這里把它換成datetime函數(shù),即:
datetime(CURRENT_TIMESTAMP,'localtime')

以下是sqlite下測(cè)試的輸出信息:
sqlite> select CURRENT_TIMESTAMP;
2006-06-18 09:23:36
sqlite> select datetime(CURRENT_TIMESTAMP,'localtime');
2006-06-18 17:23:44
sqlite>