Qt中SQLite时间和日期的用法..docx

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Qt中SQLite时间和日期的用法.

SQLite 时间的保存与查询一时间的保存经过GOOGLE发现大多数的解决方法为datetime.ToString(s) 来解决的,经过测试此方法虽然解决的问题,但还不够完美。因为这样格式化出来的时间在用工具SQLite Developer 查看时显示的时间看起来很怪,不直观。而且如果在SQLite Developer手动修改了时间,在程序中会报错,因为这个时候保存的时间格式发现了改变。经过测试发现datetime.ToString(yyyy-MM-ddhh:mm:ss)可以很好的解决这个问题。二时间的查询如果你用SQLite作开发,一定少不了时间的查询,一定会让你动不少脑精。因为和别的数据库不一样,就如要查询2009.3.2011:00:00领取工资的有多少人的SQL怎么写呢,你一定会写成:select count(*) from T where statue=1 and [date]=2009-03-20 11:00:00仔细查看会发现有问题,因为没有结果,实际表中是有结果的,这是为什么,其实我也不没有搞清楚。这个问题还是在国外的一个论坛发现解决方法的。只要改一下上面的语句就可以了select count(*) from T where statue=1 and datetime([date])=datetime(2009-03-20 11:00:00)or select count(*) from T where statue=1 and datetime([date])=2009-03-20 11:00:00记住2009-03-20不能写成为2009-3-20.以上方法经过测目前没有发现问题,当然我也是初次使用SQLite来开发一个小项目,也许还有问题没有发现出来,请各位指教!SQLite 日期时间函数SQLite并没有datatime字段类型,但是可以在字符串类型字段中存储时间,并提供了一些比较实用的日期时间操作函数strftime(日期时间格式, 日期时间字符串, 修正符, 修正符, ……) strftime( 日期时间格式, 日期时间字符串 ) 也就等价于AAuto中的: time( 日期时间字符串,日期时间格式 ) ,sqlite与AAuto使用的格式化语法也一样。参考:/doc/reference/libraries/kernel/time/time.htmlstrftime() 函数返回一个经过格式化的日期时间,它可以用下面的符号对日期和时间进行格式化:%d 一月中的第几天 01-31%f 小数形式的秒,SS.SSSS%H 小时 00-24%j 一年中的第几天 01-366%J Julian Day Numbers%m 月份 01-12%M 分钟 00-59%s 从 1970-01-01日开始计算的秒数%S 秒 00-59%w 星期,0-6,0是星期天%W 一年中的第几周 00-53%Y 年份 0000-9999%% % 百分号date,time,datetime,julianday函数date(日期时间字符串, 修正符, 修正符, ……) 等价于strftime(“%Y-%m-%d”,…) time(日期时间字符串, 修正符, 修正符, ……) 等价于strftime(“%H:%M:%S”,…) datetime(日期时间字符串, 修正符, 修正符, ……) 等价于strftime(“%Y-%m-%d %H:%M:%S”,…) julianday(日期时间字符串, 修正符, 修正符, ……) 等价于strftime(“%J”,…) 日期时间字符串可以用以下几种格式:格式有严格的要求 2008-06-15 03:35:28 日期只能用-分隔,时间只能用: 分隔,不足二位数的必须补零1.[*]YYYY-MM-DD2.[*]YYYY-MM-DD HH:MM3.[*]YYYY-MM-DD HH:MM:SS4.[*]YYYY-MM-DD HH:MM:SS.SSS5.[*]YYYY-MM-DDTHH:MM6.[*]YYYY-MM-DDTHH:MM:SS7.[*]YYYY-MM-DDTHH:MM:SS.SSS8.[*]HH:MM9.[*]HH:MM:SS10.[*]HH:MM:SS.SSS11.[*]now12.[*]DDDD.DDDD在第五种到第七种格式(ISO8601)中的“T”是一个分割日期和时间的字符;第八种到第十种格式只代表2000-01-01日的时间,第十一种格式的’now’表示返回一个当前的日期和时间,使用格林威治时间(UTC);第十二种格式表示一个 Julian Day Numbers。修正符日期和时间可以使用下面的修正符来更改日期或时间:1.[*]NNN days2.[*]NNN hours3.[*]

文档评论(0)

bhzs + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档