sqlite3-时间
在sqlite3中时间函数有好几个,刚开始看着好乱,连一个系统时间都搞不定。不过学完了发现它就像模块化的组装语句,语法更口语化
如果只是随便写写,相比而言,oracle感觉简单一些,容易上手,sqlite看着就特别烦的感觉
oracle
- 比如Oracle中获取系统时间使用sysdate,使用to_date()来格式化时间,基本上能满足日常使用。
| 1 | select sysdate from dual; | 
sqlite
我觉得这个在取时间的时候localtime是一个必须的参数,因为加了这个时间才是本地时间,不然有啥用呢
- 在sqllite中获取时间有好几个不同的函数- date(timestring, modifier, modifier, ...)获取日期 (年月日)
- time(timestring, modifier, modifier, ...)获取时间 (时分秒)
- datetime(timestring, modifier, modifier, ...)获取日期加时间(年月日时分秒)
 
- 格式化时间- strftime(format, timestring, modifier, modifier, ...)
 
| 1 | select date(); --select date('now'); | 
## 修饰符
- x days - 1 - select date('now','+3 days'); 
- xhours - 1 - select time('now','localtime','-1 hours'); --获取系统时间 
- x minutes 
- x.x seconds 
- x months 
- x years 
- start of month - 1 - select date('now','start of month'); 
- start of year 
- start of day 
- weekday N 
- unixepoch 
- localtime - 1 - select time('now','localtime') 
- utc 
time,datetime默认取的是子午线所在的时间,但是会发现这个时间(小时)与我们系统(东八区)时间并不相同。所以需要修饰符modifier
| 1 | select time('now','localtime'); --获取正确本地时间,可以看出localtime是一个modifier,now是一个timestring | 
格式化
| 替换 | 描述 | 
|---|---|
| %Y | 年,YYYY | 
| %m | 月,00-12 | 
| %d | 一月中的第几天,01-31 | 
| %H | 小时,00-23 | 
| %M | 分,00-59 | 
| %S | 秒,00-59 | 
| %f | 带小数部分的秒,SS.SSS | 
| %s | 从 1970-01-01 算起的秒数 | 
| %j | 一年中的第几天,001-366 | 
| %w | 一周中的第几天,0-6 (0 is Sunday) | 
| %W | 一年中的第几周,01-53 | 
| %% | % symbol | 
格式化日期strftime(format, timestring, modifier, modifier, ...)
| 1 | select strftime('%Y-%m-%d %H:%M:%S','now'); |