sqlite 日期型 字符串转为日期型

为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-DD**T**HH:MM
  6. YYYY-MM-DD**T**HH:MM:SS
  7. YYYY-MM-DD**T**HH: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 

网站地图xml地图