MySQL的INTERVAL和UTC_TIMESTAMP的sqlite等价物是什么?

Jac*_*son 6 mysql sqlite

什么是sqlite等价的INTERVALUTC_TIMESTAMP?例如,假设您将以下SQL从MySQL"移植"到sqlite:

SELECT mumble
  FROM blah
 WHERE blah.heart_beat_time > utc_timestamp() - INTERVAL 600 SECOND;
Run Code Online (Sandbox Code Playgroud)

Rik*_*kki 12

datetime('now')以UTC为单位提供当前日期和时间,与SQL的SQLite相当UTC_TIMESTAMP().

知道给定日期和时间字符串,datetime可以将其从本地时间转换为UTC,也可能是有用的datetime('2011-09-25 18:18', 'utc').

您还可以使用该datetime()功能应用修饰符,例如"+1天","月初"," - 10年"等等.

因此,您的示例在SQLite中看起来像这样:

SELECT mumble
  FROM blah
 WHERE blah.heart_beat_time > datetime('now', '-600 seconds');
Run Code Online (Sandbox Code Playgroud)

您可以在SQLite日期和时间函数页面上找到更多修饰符.

  • 根据这些文档,“now”已经在“utc”中,添加“utc”实际上假设时间是当地时间(因此添加/删除 N 小时),所以我认为应该是“datetime('now', ' -600秒')` (2认同)