【转】实现Sqlite datediff日期时间相减的方法

对sqlite既恨又爱,在小项目里,用sqlite开发起来非常方便,效率足够用。美中不足的是sqlite精简了些功能及相关函数。如存储过程,datediff,不支持并发写入及远程访问(或许有些高手说这个不是问题,用共享或iis都可以解决,但这算真正解决吗?),导致在开发过程中走了不少弯路。

最常用到的日期及时间比较函数datediff,在sqlite里被精简了,网上也找不到详细的的实现方法。今天就花了点时间来自己实现datediff功能。

折腾一段时间后发现sqlite里有个julianday函数转化后可以直接相减,得到的结果是以天(day)为单位数值,如果不足一天会以小数表示。于是想到应该可以用来换算成时间,即可以进行时间比较,比如要计算精确到hour级的比较,可以这样 sqlite》  select   (julianday( datetime(‘2013-10-09 17:40‘) )-   julianday(strftime(‘%Y-%m-%d %H:%M‘,datetime(‘now‘,‘localtime‘))))*24 。精确到分钟的比较可以*24*60。

julianday容易让人想当然的以为就单纯地比较day,要是有datediff那该多好。。。

时间: 2024-10-10 00:14:54

【转】实现Sqlite datediff日期时间相减的方法的相关文章

jQuery 两个日期时间相减

var sDate='2016-10-31';var eDate='2016-10-10'var sArr = sDate.split("-");var eArr = eDate.split("-");var sRDate = new Date(sArr[0], sArr[1], sArr[2]);var eRDate = new Date(eArr[0], eArr[1], eArr[2]);var result = (sRDate-eRDate)/(24*60*

asp.net(C#)时间相减 得到天数、小时、分钟、秒差

asp.net(C#)时间相减 得到天数.小时.分钟.秒差 DateTime dtone = Convert.ToDateTime("2007-1-1 05:00:00"); DateTime dtwo = Convert.ToDateTime("2007-1-5 08:00:00"); TimeSpan span = dtone.Subtract(dtwo); //算法是dtone 减去 dtwo tss.Text = span.Days + "天&qu

oracle 两个时间相减

oracle 两个时间相减默认的是天数 oracle 两个时间相减默认的是天数*24 为相差的小时数 oracle 两个时间相减默认的是天数*24*60 为相差的分钟数 oracle 两个时间相减默认的是天数*24*60*60 为相差的秒数 --MONTHS_BETWEEN(date2,date1) 给出date2-date1的月份 SQL> select months_between('19-12月-1999','19-3月-1999') mon_between from dual; MON_

Oracle 时间相减得出毫秒、秒、分、时、天,,【转】

http://blog.csdn.net/redarmy_chen/article/details/7351410 oracle 两个时间相减默认的是天数 oracle 两个时间相减默认的是天数*24 为相差的小时数 oracle 两个时间相减默认的是天数*24*60 为相差的分钟数 oracle 两个时间相减默认的是天数*24*60*60 为相差的秒数 --MONTHS_BETWEEN(date2,date1) 给出date2-date1的月份 SQL> select months_betwe

C#-和时间有关的计算代码、时间相减 得到天数、小时、分钟、秒差

asp.net(C#)时间相减 得到天数.小时.分钟.秒差 asp.net(C#)时间相减 得到天数.小时.分钟.秒差 DateTime dtone = Convert.ToDateTime("2007-1-1 05:00:00");         DateTime dtwo = Convert.ToDateTime("2007-1-5 08:00:00");         TimeSpan span = dtone.Subtract(dtwo); //算法是d

java处理日期时间 相加减大全

java处理日期时间 相加减 JAVA处理日期时间常用方法: 1.java.util.Calendar Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法.瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量. 例: Java代码 1. Calendar cal

C#两个时间相减

原文地址:http://www.jb51.net/article/60177.htm using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Program { static void Main(string[] args) { DateTime t1 = DateTime.Parse("2007-01-01"); DateT

两个时间相减

<1> using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Program { static void Main(string[] args) { DateTime t1 = DateTime.Parse("2007-01-01"); DateTime t2 = DateTime.Parse("200

mysql时间相减的问题

MySQL中时间不能直接相减,如果日.分.时不同,相减结果是错误的 mysql> select t1,t2,t2-t1 from mytest; +---------------------+---------------------+-------+ | t1                  | t2                  | t2-t1 | +---------------------+---------------------+-------+ | 2013-04-21 16