SQlite 日期时间总结

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天前的本地时间串。

原文地址:https://www.cnblogs.com/any91/p/8537583.html