Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL->;SQLite:DATE\u TRUNC等价物_Sql_Sqlite - Fatal编程技术网

PostgreSQL->;SQLite:DATE\u TRUNC等价物

PostgreSQL->;SQLite:DATE\u TRUNC等价物,sql,sqlite,Sql,Sqlite,星期五下午,我累坏了。因此,其他SQL爱好者介绍了如何在PostgreSQL中使用以下WHERE子句,并将其转换为SQLite3,而无需使用编译扩展: WHERE DATE_TRUNC('day', c.start_date) <= DATE_TRUNC('day', q.date) AND DATE_TRUNC('day', c.end_date) >= DATE_TRUNC('day', q.date) 在哪里 日期(“日”,c.开始日期)=日期(“日”,q.日期)

星期五下午,我累坏了。因此,其他SQL爱好者介绍了如何在PostgreSQL中使用以下WHERE子句,并将其转换为SQLite3,而无需使用编译扩展:

WHERE
  DATE_TRUNC('day', c.start_date) <= DATE_TRUNC('day', q.date) AND
  DATE_TRUNC('day', c.end_date) >= DATE_TRUNC('day', q.date)
在哪里
日期(“日”,c.开始日期)=日期(“日”,q.日期)

回顾SQLite3中的日期/时间函数,它们似乎只用于字符串格式。希望我看到了一些错误。

SQLite没有日期的数据类型;它使用了

要删除时间戳的时间部分,请使用。 要使用的实际函数(
datetime()
julianday()
strftime(“%s”)
)取决于日期值的格式:

WHERE
  datetime(c.start_date, 'start of day') <= datetime(q.date, 'start of date') AND
  datetime(c.end_date,   'start of day') >= datetime(q.date, 'start of date')

我无法使上述方法在数小时或数分钟内有效

对于这些,您可以使用以下
strftime
功能进行破解:

选择日期时间(strftime(“%Y-%m-%dT%H:00:00”,“now”);

由于SQLite没有
日期
数据类型,因此不可能有等效的数据类型。假设您的列的格式是SQLite可以理解为日期的格式,那么您需要的可能是
日期(c.start\u date)
等等?
WHERE
  date(c.start_date) <= date(q.date) AND
  date(c.end_date)   >= date(q.date)