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. Python与SQLite日期时间函数的使法

    SQLite的时间函数跟Python的时间函数有些许差别,所以稍做记录,供自己以后查询. 网上有将SQLite官方WIKI内容翻译成中文的文章,大家有兴趣可以搜索一下,我这里单纯记录一下个人比较常用的 ...

  2. SQLite 日期 & 时间

    具体看http://www.runoob.com/sqlite/sqlite-date-time.html 不过实例介绍的不够详细,以下详细举例: SQLite包含了如下时间/日期函数:datetim ...

  3. mysql与oracle的日期/时间函数小结

    前言 本文的日期/时间全部格式化为”2016-01-01 01:01:01“形式: MONITOR_TIME为数据库表字段: 字符串与日期/时间相互转换函数 Oracle 日期/时间转字符串函数:to ...

  4. Oracle日期时间函数大全

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...

  5. ORACLE 常用函数 日期/时间函数

    ---------------------------------------------日期/时间函数----------------------------------------------- ...

  6. MySQL日期时间函数大全(转)

    MySQL日期时间函数大全 DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1 ...

  7. Mysql学习笔记(五)数学与日期时间函数

    学习内容: 1.数学函数 2.日期时间函数 这些函数都是很常用的函数...在这里进行简单的介绍... 数学函数: mysql); //取绝对值函数 这个函数可安全地使用于 BIGINT 值. mysq ...

  8. MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数

    一.常见字符串函数: 1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左 ...

  9. PHP函数之日期时间函数date()使用详解

    date()函数是我们在php开发中常碰到并且会使用到的一个日期函数,下面我来给大家介绍date()函数的一些基本扮靓和方法,有需要了解的朋友可进入参考   日期时间函数是PHP 的核心组成部分.无需 ...

随机推荐

  1. [学习笔记]Javascript的包装对象

    例子1: var s="test"; s.len = 4; var t = s.len // t is undefined 原因是s是字符串,第二行代码,实际上是创建一个临时字符串 ...

  2. Oracle 服务器结构

    [学习目标] 作为一个数据库管理员(DBA),经常会遇到各种没有见过的问题.除了宝贵的经验外, 通过理论基础去对问题进行判断.解决是至关重要的.因此,Oracle 服务器的结构和组成 是学习Oracl ...

  3. pytest一:pytest 框架介绍

    pytest 是 python 的一种单元测试框架,与python 自带的 unittest测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高.根据pytest 的官方网站介绍,它具 ...

  4. 记一次Oracle分区表错误:ORA-14400: 插入的分区关键字未映射到任何分区

    https://blog.csdn.net/xdyzgjy/article/details/42238735

  5. POJ 2184 Cow Exhibition (带负值的01背包)

    题意:给你N(N<=100)只牛,每只牛有一个智慧值Si和一个活泼值Fi,现在要从中找出一些来,使得这些牛智慧值总和S与活泼值总和F之和最大,且F和S均为正.Si和Fi范围在-1000到1000 ...

  6. A. 【UNR #1】争夺圣杯

    题解: 一道比较水的题目 按照最一般的思路离散化后枚举最大值 然后考虑最大值的贡献 会发现需要分类讨论一下 发现对一段k的影响是等差数列 所以可以用线段树维护差分数组

  7. BZOJ3626 [LNOI2014]LCA 树链剖分 线段树

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3626 题意概括 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节 ...

  8. 094实战 关于js SDK的程序,java SDK的程序

    一:JS SDK 1.修改配置workspace 2.导入 3.Demo.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Trans ...

  9. Python爬虫之PyQuery使用(六)

    Python爬虫之PyQuery使用 PyQuery简介 pyquery能够通过选择器精确定位 DOM 树中的目标并进行操作.pyquery相当于jQuery的python实现,可以用于解析HTML网 ...

  10. Python常用模块--datetime

    datetime是Python专门用于处理日期和时间的标准模块. 1.获取当前的本地时间 #!/usr/bin/env python# -*- coding:utf-8 -*-__author__ = ...