sqlite时间范围查询技巧
语句
select cast(strftime(‘%w’,create_time,’ weekday 0’)) as int) week, count from
(select
,(select count(
) from bm_entity t2 where t2.create_time<t1.create_time) as count from bm_entity t1)
where create_time between date(‘now’, ‘start of day’, ‘-3 months’, ‘+1 days’) and date(‘now’, ‘start of day’) group by week;
sqlite支持以下时间函数:
(菜鸟)
1 | date(timestring, modifier, modifier, …) | 以 YYYY-MM-DD 格式返回日期。 |
---|---|---|
2 | time(timestring, modifier, modifier, …) | 以 HH:MM:SS 格式返回时间。 |
3 | datetime(timestring, modifier, modifier, …) | 以 YYYY-MM-DD HH:MM:SS 格式返回。 |
4 | julianday(timestring, modifier, modifier, …) | 这将返回从格林尼治时间的公元前 4714 年 11 月 24 日正午算起的天数。 |
5 | strftime(format, timestring, modifier, modifier, …) | 这将根据第一个参数指定的格式字符串返回格式化的日期。具体格式见下边讲解。 |
timeString时间字符串
now代表现在
modifier 修饰符
- NNN days
- NNN hours
- NNN minutes
- NNN.NNNN seconds
- NNN months
- NNN years
- start of month
- start of year
- start of day
- weekday N
- unixepoch
- localtime
- utc
cast
语句中把str字符串转换为了整数类型
语法:CAST (expression AS data_type)
expression:任何有效的SQServer表达式。
AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。
data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。
二进制,同带binary前缀的效果 : BINARY
字符型,可带参数 : CHAR()
日期 : DATE
时间: TIME
日期时间型 : DATETIME
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED
————————————————
版权声明:本文为CSDN博主「猿来如此呀」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_21101587/article/details/78642423
select
,(select count(
) from bm_entity t2 where t2.create_time<t1.create_time) as count from bm_entity t1
这个select语句用来比较两张相同的表即为t1t2,球t2比t1时间小的数量(实际就是在该记录以前所有的记录数量)。由于表示按时间顺序依次录入,就可以表示某一个记录的以前所有的记录数。