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-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

时间: 2024-10-10 07:30:43

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

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

方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss ================================================ 方法二:Convert.ToDateTime(string, IFormatProvider) DateTime dt; DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo()

js字符串转为日期格式

1. <script type="text/javascript"> //字符串转日期格式,strDate要转为日期格式的字符串 function getDate(strDate){ var date = eval('new Date(' + strDate.replace(/\d+(?=-[^-]+$)/, function (a) { return parseInt(a, 10) - 1; }).match(/\d+/g) + ')'); return date; }

分享一个将指定日期格式的字符串转为日期的js函数toDate

今天发现easyui的datetimebox不能正常显示日期,接着自然就是实现toDate的功能,google了下,没找到满意的,都写的很罗嗦.自己写一个,本来以为js的正则也可以用命名group来弄,但是目前看javascript好像不支持.现在实现的代码如下,希望对有需要的人也有帮助. //by dragonimp 2015.5.3 //使用方法: //"2015-5-5 9:10:10".toDate("yyyy-M-d hh:mm:ss") //"

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

JAVA字符串转日期或日期转字符串 项目开发过程中需要实现日期格式的字符串与日期进行互转,并进行日期的加减操作. Demo如下: package weiming.lmapp.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateConvert { /** * 日期转换成字符串 * @param date * @return

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

获取周的第一天,最后一天 System.out.println(getStartEndDate("2016-05-01", 1)); 获取星期的第一天和最后一天 System.out.println(getStartEndDate("2016-05-01", 0)); public static String getStartEndDate(String aDay, int type) { SimpleDateFormat df = new SimpleDateFo

日期(字符串转日期,日期转字符串,日期加减)

这几天在研究字符串与指定类型的转换,阴差阳错地研究起 java 的日期应用了,记录下来,希望你有帮助. 根据指定格式的字符串,转换为 Date(可研究根据指定格式的字符串,转化为其他指定的类型,如 json 转换为 javaBean) 需要使用到的特殊类:import java.text.ParsePosition;     /**      * <p>Parses a string representing a date by trying a variety of different pa

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

新建console程序,复制粘贴直接运行: /**/ //using System.Globalization;//代码测试大致时间2015/11/3 15:09:05 //方法一:Convert.ToDateTime(string)//string格式有要求,必须是yyyy - MM - dd hh:mm:ss string sTime = "2015-11-3 14:25:25"; Console.WriteLine(Convert.ToDateTime(sTime)); //==

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

方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss ================================================ 方法二:Convert.ToDateTime(string, IFormatProvider) DateTime dt; DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo()

法三:字符串转为枚举型

枚举 //定义 type   Colors = (Red, Yellow, Green, Cyan, Blue, Violet);   Suit = (Club, Diamond, Heart, Spade); //举例: type   Colors = (Red, Yellow, Green, Cyan, Blue, Violet); var   C: Colors; begin   C := Red;   ShowMessage(IntToStr(Ord(C)));  //0   C :=