因为sqlite为弱引用,使用字段前将他强制转为日期型,用datetime。或者最原始的 strftime。

SELECT distinct ID from testTable where datetime(availDate) between datetime('2015-01-12 04:00') and datetime('2015-01-13 00:00');

SQLite日期时间函数

SQLite支持以下五个日期时间函数:

  1. date(timestring, modifier, modifier, …)
  2. time(timestring, modifier, modifier, …)
  3. datetime(timestring, modifier, modifier, …)
  4. julianday(timestring, modifier, modifier, …)
  5. strftime(format, timestring, modifier, modifier, …)

这五个函数都是以时间字符窜(timestring)为参数,同时,时间字符窜后面还可以接收零个或者多个修饰符。另外,strftime()函数与其它的四个函数有点区别,它还可以接收一个字符窜格式(与C函数中printf函数使用字符窜格式)。

SQLite的日期时间函数使用的是ISO-8601日期时间格式规范中的子集。date()函数返回的日期格式为:YYYY-MM-DD,time()函数返回的时间格式为:HH:MM:SS,datetime()函数返回的格式为”YYYY-MM-DD HH:MM:SS”。julianday()返回的是儒略日期(Julian day)——从公元前4714年11月24日正午(以格林威治时间为准)至当前的天数。strftime()函数则按照用户指定的格式字符窜(第一个参数)来格式化用户的时间输入(第二个参数)。格式字符窜的组成与C函数中的格式化参数基本相似,但表示的意义却不相同。主要如下:
%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 
%% %

另外,所有其它日期时间函数能够表达的格式,strftime()函数都可以做,如下:
Function        Equivalent strftime()
date(…)          strftime(‘%Y-%m-%d’, …) 
time(…)          strftime(‘%H:%M:%S’, …) 
datetime(…)    strftime(‘%Y-%m-%d %H:%M:%S’, …) 
julianday(…)    strftime(‘%J’, …)

但是,之所以还提供了strftime之外的其它函数,则完全是从便捷与性能上的考虑。

时间字符窜(Time String)

时间字符窜可以以下的任意一种形式:

  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. now
  12. DDDDDDDDDD

在第5至7中,T是用来分隔日期时间的(参照ISO-8601)。8至10指定的是时间格式,由于没有日期输入,这几个格式默认日期为2000-01-01。第11条中,’now’ 将被转化为当前的日期时间。

修饰符(Modifiers)

时间字符窜(time string)后台可以加上0个或者多个修饰符用以辅助改变时间字符窜。每一个修饰符都是对其左边值的转换,当有多个修饰符时,其生效的顺序为从左至右。可用的修改符有:

  1. NNN days
  2. NNN hours
  3. NNN minutes
  4. NNN.NNNN seconds
  5. NNN months
  6. NNN years
  7. start of month
  8. start of year
  9. start of day
  10. weekday N
  11. unixepoch
  12. localtime
  13. utc

前面6个修饰符是对时间字符窜及其前面的修饰符处理后的时间结果进行增加或者减少。例如,对于YYYY-MM-DD格式的时间,当使用”±NNN months”修饰符时,则是对MM增加/减少相应的月数。

例子

当前日期
SELECT date(‘now’);

当月的最后一天
SELECT date(‘now’,'start of month’,'+1 month’,'-1 day’);

将UNIX时间戳转化为时间日期格式
SELECT datetime(1092941466, ‘unixepoch’);

将UNIX时间戳转化为本地时间
SELECT datetime(1092941466, ‘unixepoch’, ‘localtime’);

当前日期的UNIX时间戳格式
SELECT strftime(‘%s’,'now’);

计算当天与美国独立日之间的日期差(以天为单位)
SELECT julianday(‘now’) – julianday(’1776-07-04′);

计算任意时间至当前时间的时间差(以秒为单位)
SELECT strftime(‘%s’,'now’) – strftime(‘%s’,’2004-01-01 02:34:56′);

将日期确定在本年度十月的条一个星期二
SELECT date(‘now’,'start of year’,'+9 months’,'weekday 2′);

原文:http://blog.romebuilder.com/?p=96

sqlite 日期型 字符串转为日期型的更多相关文章

  1. js字符串转为日期格式

    1. <script type="text/javascript"> //字符串转日期格式,strDate要转为日期格式的字符串 function getDate(st ...

  2. C# string格式的日期时间字符串转为DateTime类型

    (1 )Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss (2):Convert.ToDateTime(string, IFo ...

  3. js将4个字节型字符串转为Float

    function convertFloat(byteStr) { var buffer = str2ArrayBuffer(byteStr, 4); var dataView = new DataVi ...

  4. java 和 mysql 获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)

    获取周的第一天,最后一天 System.out.println(getStartEndDate("2016-05-01", 1)); 获取星期的第一天和最后一天 System.ou ...

  5. flex4 日期类型字符串转日期类型(string转Date)(转)

    mysql数据库中存储的日期类型通过PHP返回到flex端为字符串类型,这样在flex中进行处理时就必须要将字符串转化为Date类型.如果仅仅是 "年/月/日" 的组合,而没有涉及 ...

  6. java工具类(五)之日期格式字符串与日期实现互转

    JAVA字符串转日期或日期转字符串 项目开发过程中需要实现日期格式的字符串与日期进行互转,并进行日期的加减操作. Demo如下: package weiming.lmapp.utils; import ...

  7. 【转】C#语言之“string格式的日期时间字符串转为DateTime类型”的方法

    方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss ================================== ...

  8. [No00003B]string格式的日期时间字符串转为DateTime类型

    新建console程序,复制粘贴直接运行: /**/ //using System.Globalization;//代码测试大致时间2015/11/3 15:09:05 //方法一:Convert.T ...

  9. C#语言之“string格式的日期时间字符串转为DateTime类型”的方法(转)

    原文链接:http://www.cnblogs.com/Pickuper/articles/2058880.html 方法一:Convert.ToDateTime(string) string格式有要 ...

随机推荐

  1. Dell BOSS 卡是什么

    全名: Boot Optimized Storage Solution 针对 M.2 接口的 SSD,主板上必须设计接口进行适配. 设计一款主板对于硬件厂商来说是有成本的,其中包括 主板设计成本 产品 ...

  2. 初级Java工程师面试所遇面试题

    1.servlet的生命周期 : 一.百度百科 : 1.客户端请求servlet: 2.加载servlet类到内存: 3.实例化并调用init()方法初始化servlet: 4.调用service() ...

  3. Chrome F12调试

    F12 断点 F5 Esc 选择鼠标右击:编辑||hover样式 Sonrces go to file (ctrl+p) 搜搜文件名

  4. 对象&内置对象& 对象构造 &JSON&__proto__和prototype

    原型是一个对象,其他对象可以通过它实现属性继承 原型链:每个对象都会在其内部初始化一个属性,就是__proto__,当我们访问一个对象的属性 时,如果这个对象内部不存在这个属性,那么他就会去__pro ...

  5. 程序设计第三次作业---C++计算器雏形

    Github链接:https://github.com/Wasdns/object-oriented 题目:程序设计第三次作业 程序设计第三次作业附加 我的程序设计第三次作业附加 代码规范 更新时间: ...

  6. PHP压力测试使用apache的ab工具和Linux的time命令

    ab工具是apache自带的一个压力测试工具,可以在apache的安装路径下的bin目录下找到,我的环境中是在/usr/local/apache/bin/目录下: ab 压测主要使用两个参数: -n ...

  7. MYSQL jdbc autoReconnect

    http://blog.csdn.net/a9529lty/article/details/7104351 http://blog.163.com/huangfei_person/blog/stati ...

  8. TCP 三次握手理解和过程

    1:TCP为什么要三次握手,不是两次四次? 2:TCP协议三次握手过程分析

  9. 在 Linux 虚拟机中手动安装或升级 VMware Tools

    对于 Linux 虚拟机,您可以使用命令行工具手动安装或升级 VMware Tools. 本次Linux 虚拟机为CentOS6.5 先决条件开启虚拟机.确认客户机操作系统正在运行.由于 VMware ...

  10. 记一次配置oh my zsh的坑

    oh-my-zsh:https://github.com/robbyrussell/oh-my-zsh prezto:https://github.com/sorin-ionescu/prezto 我 ...