如何将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/时间格式化为已被接受的格式:

  1. YYYY-MM-DD
  2. YYYY-MM-DD HH:MM
  3. YYYY-MM-DD HH:MM:SS
  4. YYYY-MM-DD HH:MM:SS.SSS
  5. YYYY-MM-DDTHH:MM
  6. YYYY-MM-DDTHH:MM:SS
  7. YYYY-MM-DDTHH:MM:SS.SSS
  8. HH:MM
  9. HH:MM:SS
  10. HH:MM:SS.SSS
  11. 现在

参考: 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对象一样。