1. 时间串转时间戳,函数strftime,其参数1是固定'%s',参数2是待转换的时间串,参数3...是修饰符
(1)select strftime('%s','2004-01-01 02:34:56')
时间串是格林威治时间,返回其Unix时间戳。
备注:简单说,这条语句获取格林威治时间串的时间戳。
(2)select strftime('%s','2004-01-01 02:34:56','localtime')
'localtime'指示时间串是格林威治时间,函数会自动将其换算为本地时间串,也即参数2实际上变成了'2004-01-01 10:34:56',
时间串内容仍旧被作为格林威治时间,返回其Unix时间戳。
(3)select strftime('%s','2004-01-01 02:34:56','utc')
'utc'指示时间串是本地时间,函数会自动将其换算为格林威治时间串,也即时间串实际上变成了'2003-12-31 18:34:56',
时间串内容仍旧被作为格林威治时间,返回其Unix时间戳。
备注:简单说,这条语句获取本地时间串的时间戳。
(4)参数2可以是字段名。
2. 时间戳转时间串
(1)select datetime(1072895696)
此用法非法,不能这么用。
(2)select datetime(1072895696, 'unixepoch')
返回1072895696时间戳所对应的格林威治时间串。其中'unixepoch'指示参数1是一个unix时间戳整数格式。
备注:简单说,这条语句获取时间戳对应的格林威治时间串。
(3)select datetime(1072895696, 'unixepoch', 'localtime')
首先按照(2)所述得到1072895696时间戳所对应的格林威治时间串,'localtime'指示函数会自动将其换算为本地时间串。
备注:简单说,这条语句获取时间戳对应的本地时间串。
3. 获取当前时间串
(1)select datetime('now')
‘now'取到的格林威治时间串,返回当前时间的格林威治时间串。
(2)select datetime('now', 'localtime')
‘now'取到的格林威治时间戳串,'localtime'指示函数会自动将其换算为本地时间串。
备注:简单说,这条语句获取当前本地时间串。
4. 时间加减
(1) select datetime('now', 'localtime', '-7 day')
7天前的本地时间串。