[英]sqlite compare timestamp with DateTime in C#
如何將sqlite時間戳與C# DateTime
? 我有:
string query = string.Format(@"select avg(CPUH_VALUE_ALL) as Value from CPU_HOUR where CPUH_DATE >= @Date");
var pars = new List<SQLiteParameter>();
pars.Add(new SQLiteParameter("Date", DateTimeSQLite(DateTime.Now.AddMinutes(-12))));
哪里
static string DateTimeSQLite(DateTime datetime)
{
string dateTimeFormat = "{0}-{1}-{2} {3}:{4}:{5}.{6}";
return string.Format(dateTimeFormat, datetime.Year, datetime.Month, datetime.Day, datetime.Hour, datetime.Minute, datetime.Second, datetime.Millisecond);
}
那是行不通的。 當我嘗試將時間戳與各種格式的日期的字符串值進行比較時,也沒有任何效果。 有什么線索嗎?
編輯
select CPUH_DATE from CPU_HOUR where CPUH_DATE
給我這樣的記錄:
5/19/2014 9:30:54 PM
Edit2我剛剛發現,這不起作用:
select * from CPU_HOUR where CPUH_DATE >= '2014-5-19 21:30:08'
這是(請注意5之前的零):
select * from CPU_HOUR where CPUH_DATE >= '2014-05-19 21:30:08'
有趣。
SQLite沒有為存儲日期和/或時間預留存儲類。 相反,SQLite內置的日期和時間功能可以將日期和時間存儲為TEXT,REAL或INTEGER值:
文本為ISO8601字符串(“ YYYY-MM-DD HH:MM:SS.SSS”)。 實際為儒略日數,根據公歷在公元前4714年11月24日格林威治中午以來的天數。 INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以來的秒數。 應用程序可以選擇以任何一種格式存儲日期和時間,並使用內置的日期和時間功能在格式之間自由轉換。
資料來源: sqllite.org
我的建議是將datetime值保存為整數。 這樣,您將不會對比較等操作產生任何問題。 並且,如果您在查詢中需要非數字日期,則可以使用內置的Datetime函數,如下所示:
SELECT datetime(1092941466, 'unixepoch');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.