如何将date时间值插入SQLite数据库?
我想插入一个date时间值到SQLite数据库。 它似乎是sucsessful,但是当我尝试检索值有一个错误:
<无法读取数据>
SQL语句是:
create table myTable (name varchar(25), myDate DATETIME) insert into myTable (name,mydate) Values ('fred','jan 1 2009 13:22:15')
你需要的格式是:
'2007-01-01 10:00:00'
即yyyy-MM-dd HH:mm:ss
但是,如果可能的话,请使用参数化查询,因为这可以让您免于担心格式设置的细节。
在SQLite中存储date的方法是:
yyyy-mm-dd hh:mm:ss.xxxxxx
SQLite也有一些可以使用的date和时间函数。 通过SQLite,date和时间函数查看SQL 。
您必须更改您提供的datestring的格式,以便能够使用STRFTIME函数插入它。 原因是,没有select一个月的缩写:
%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 %% %
另一种方法是将date/时间格式化为已被接受的格式:
- YYYY-MM-DD
- YYYY-MM-DD HH:MM
- YYYY-MM-DD HH:MM:SS
- YYYY-MM-DD HH:MM:SS.SSS
- YYYY-MM-DDTHH:MM
- YYYY-MM-DDTHH:MM:SS
- YYYY-MM-DDTHH:MM:SS.SSS
- HH:MM
- HH:MM:SS
- HH:MM:SS.SSS
- 现在
参考: SQLitedate和时间函数
阅读:1.2 Date
和时间数据types存储date和时间的最佳数据types是:
TEXT
最好的格式是: yyyy-MM-dd HH:mm:ss
然后阅读这个页面; 这是在SQLite
最好的解释date和时间。 我希望这可以帮助你
当你需要时使用CURRENT_TIMESTAMP
,而不是NOW()
(这是MySQL)
这可能不是最stream行或最有效的方法,但是我倾向于放弃SQLite中强大的数据types,因为它们本质上都是以string的forms被抛弃的。
我已经在SQLite库之前编写了一个精简的C#包装器(当然,使用C#的SQLite时)来处理SQLite的插入和提取,就好像我正在处理DateTime对象一样。