在我的Android應用程序,我用STRFTIME功能,通過比較不同的日期字符串擺脫SQLite的數據。當前日期時間是錯誤的使用STRFTIME
我設置促銷StartDate
和EndDate
到2013-10-07
和2013-12-31
分別。當前日期時間介於StartDate
和EndDate
之間時存在促銷。
以下是有效的strftime()替換的完整列表:
%d day of month: 00
%f fractional seconds: SS.SSS
%H hour: 00-24
%j day of year: 001-366
%J Julian day number
%m month: 01-12
%M minute: 00-59
%s seconds since 1970-01-01
%S seconds: 00-59
%w day of week 0-6 with Sunday==0
%W week of year: 00-53
%Y year: 0000-9999=
,而且我用下面的查詢檢索數據。
Select * From Sal_Promotion p, Sal_Promotion_CustomerTypeAndProduct pd
Where p.Sal_PromotionID = d.Sal_PromotionID and
strftime('%s','now') >= strftime('%s',Sal_StartDate) and
strftime('%s','now') = strftime('%s',Sal_EndDate) and
Sal_CustomerTypeID = customerTypeID and
p.Sal_PromotionID = promoID;
當我在2013年10月7日早上7點測試我的應用程序時,我得到以下輸出。
輸出:
開始日期:2013年10月7日00:00:00(值:1381104000)
結束日期:2013-12-31 00:00:00(值: 1388448000)
CurrentDateTime:2013年10月7日7時00分○○秒(值:1381100400)
CurrentDateTime值應該是起始日期和結束日期之間。但爲什麼價值是錯誤的?當前日期時間比StartDate晚3600秒(1小時)。
我現在的城市是新加坡(GMT + 8:00)。是因爲時區差異嗎?
有人能指出我出了什麼問題?
在上面提供的鏈接中,這用於獲取本地時區。 'SELECT datetime(1092941466,'unixepoch','localtime');'所以,我通過這種方式轉換爲當前的本地DateTime。 'SELECT datetime(strftime('%s','now'),'unixepoch','localtime')'。謝謝你的幫助。 – albert
你可以用'datetime('now','localtime')簡化這個' –