文档章节

SQLite中的时间日期函数

深圳大道
 深圳大道
发布于 2016/12/29 15:39
字数 711
阅读 2
收藏 0
SQLite包含了如下时间/日期函数:
datetime().......................产生日期和时间
date()...........................产生日期
time()...........................产生时间
strftime().......................对以上三个函数产生的日期和时间进行格式化

datetime()的用法是:datetime(日期/时间,修正符,修正符...)
date()和time()的语法与datetime()相同。

在时间/日期函数里可以使用如下格式的字符串作为参数:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
其中now是产生现在的时间。

举例(写这个笔记的时间是2006年10月17日晚8点到10点,测试环境:SQLite 2.8.17,WinXP,北京时间):


例1.
select datetime('now'); 
结果:2006-10-17 12:55:54

例2.
select datetime('2006-10-17'); 
结果:2006-10-17 12:00:00

例3.
select datetime('2006-10-17 00:20:00','+1 hour','-12 minute');
结果:2006-10-17 01:08:00

例4.
select date('2006-10-17','+1 day','+1 year');
结果:2007-10-18

例5.
select datetime('now','start of year');
结果:2006-01-01 00:00:00

例6.
select datetime('now','start of month');
结果:2006-10-01 00:00:00

例7.
select datetime('now','start of day');
结果:2006-10-17 00:00:00

例8.
select datetime('now','+10 hour','start of day','+10 hour');
结果:2006-10-17 10:00:00

例9.
select datetime('now','localtime');
结果:2006-10-17 21:21:47

例10.
select datetime('now','+8 hour');
结果:2006-10-17 21:24:45


例3中的+1 hour和-12 minute表示可以在基本时间上(datetime函数的第一个参数)增加或减少一定时间。

例5中的start of year表示一年开始的时间。

从例8可以看出,尽管第2个参数加上了10个小时,但是却被第3个参数“start of day”把时间归零到00:00:00,随后的第4个参数在00:00:00
的基础上把时间增加了10个小时变成了10:00:00。

例9把格林威治时区转换成本地时区。

例10把格林威治时区转换成东八区。

strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。
strftime()的语法是strftime(格式, 日期/时间, 修正符, 修正符, ...)

它可以用以下的符号对日期和时间进行格式化:
%d 月份, 01-31
%f 小数形式的秒,SS.SSS
%H 小时, 00-23
%j 算出某一天是该年的第几天,001-366
%m 月份,00-12
%M 分钟, 00-59
%s 从1970年1月1日到现在的秒数
%S 秒, 00-59
%w 星期, 0-6 (0是星期天)
%W 算出某一天属于该年的第几周, 01-53
%Y 年, YYYY
%% 百分号

strftime()的用法举例如下:


例11.
select strftime('%Y.%m.%d %H:%M:%S','now','localtime');
结果:2006.10.17 21:41:09


例11用圆点作为日期的分隔附,并把时间转换为当地的时区的时间。

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/22292963

共有 人打赏支持
深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
sqlite中的datetime格式

最近在看Flask,有个需求是要用Flask做个自定义的api给一个项目做调用,看到了数据库这里,运行代码时出现错误: 检查了table中日期的字段,确实是日期格式的,没错: table的字段信息: 于是...

臭臭粑粑
2018/12/21
0
0
SQLITE SQL语句的注意

1 TOP 这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录: SELECT TOP 10 * FROM [index] ORDER BY indexid DESC; 但是这条SQL语句在SQLite中是无...

长平狐
2012/10/16
182
0
SQLite不支持的SQL语法总结

1 TOP 这是一个大家经常问到的问题,例如在SQLSERVER中可以使用如下语句来取得记录集中的前十条记录: SELECT TOP 10 * FROM [index] ORDER BY indexid DESC; 但是这条SQL语句在SQLite中是无...

长平狐
2012/10/16
88
0
SQLite3的数据类型

大多数 SQL 数据库引擎 (据我们所知,除 SQLite 之外的所有 SQL 数据库引擎)都使用严格的静态类型。使用静态类型,值的类型便由它的容器 -- 存储值的特定的列 -- 来决定。 SQLite 使用更通...

proliang
2013/05/01
9.3K
3
SQLite 指南之FAQ(中文)

1. 如何创建自增字段? 2. SQLite 支持哪些数据类型? 3. 为什么能向 SQLite 数据库的整型字段中插入字符串? 4. 为什么 SQLite 认为表达式 '0'=='00' 为真? 5. 为什么 SQLite 不允许在同一...

晨曦之光
2012/04/12
641
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot2.x配置Cors跨域

SpringBoot2.x配置Cors跨域 1 跨域的理解 跨域是指:浏览器A从服务器B获取的静态资源,包括Html、Css、Js,然后在Js中通过Ajax访问C服务器的静态资源或请求。即:浏览器A从B服务器拿的资源,...

水木星辰
19分钟前
1
0
一文搞懂TCP与UDP的区别

**摘要:**计算机网络基础 作者:浪里行舟 Fundebug经授权转载,版权归原作者所有。 引言 网络协议是每个前端工程师都必须要掌握的知识,TCP/IP 中有两个具有代表性的传输层协议,分别是 TC...

Fundebug
21分钟前
2
0
Hanlp1.7版本的新增功能一览

Hanlp1.7版本在去年下半年的时候就随大快的DKH1.6版本同时发布了,截至目前1.7大版本也更新到了1.7.1了。本篇分别就1.7.0和1.7.1中新增的功能做一个简单的汇总介绍。 HanLP 是由一系列模型与...

左手的倒影
28分钟前
1
0
Linux之PAM可动态加载的认证模块

在Linux中执行有些程序时,这些程序在执行前首先要对启动它的用户进行认证,符合一定的要求之后才允许执行,例如login, su等。在Linux中进行身份或是状态的验证程序是由PAM来进行的,PAM(P...

城市之雾
29分钟前
1
0
程序员接私活那些坑

前言 最近有很多人问我私活怎么样?有什么坑,我之前也是接了几个私活,当然也有稳定的收入。我们也来分享一下。前几天发现了一个帖子很不错,我们来分享一下 注:本文转自 : http://blog.cs...

终端研发部
36分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部