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
SQLite中有关epoch的问题_Sqlite_Postgresql - Fatal编程技术网

SQLite中有关epoch的问题

SQLite中有关epoch的问题,sqlite,postgresql,Sqlite,Postgresql,我用PHP和postgres做了一个web应用程序。现在,我正在将同一个应用程序转换为JavaScript和SQLite。我必须说,这并不难,SQLite已经成功地解释了我在postgres中使用的相同查询 除了这个 SELECT SUM(t.subtotal)/MAX(EXTRACT(epoch FROM (r.fecha_out - r.fecha_in))/86400) AS subtotal, COUNT(t.id) AS habitaciones FROM reserva_habita

我用PHP和postgres做了一个web应用程序。现在,我正在将同一个应用程序转换为JavaScript和SQLite。我必须说,这并不难,SQLite已经成功地解释了我在postgres中使用的相同查询

除了这个

SELECT SUM(t.subtotal)/MAX(EXTRACT(epoch FROM (r.fecha_out - r.fecha_in))/86400) AS subtotal,
COUNT(t.id) AS habitaciones FROM reserva_habitacion t 
LEFT JOIN reserva r ON t.id_reserva=r.id 
WHERE (r.fecha_in <= "2015-03-27" AND r.fecha_out > "2015-03-27") AND r.estado <> 5
选择SUM(t.subtotal)/MAX(提取(epoch FROM(r.fecha_out-r.fecha_in))/86400作为小计,
从reserva_habitacion t将(t.id)计数为居住者
t.id\u reserva=r.id上的左连接保留r
其中(r.fecha_在“2015-03-27”中)和r.estado 5
使用FireFox插件“SqlItemManager”,它提示我错误是来自的这一部分,但我无法理解它。我做错了什么?我该如何修复它


欢迎提出任何建议

SQLite是完全动态类型化的,这对于关系数据库来说是不常见的

相反,Postgres是严格类型的,并且使用操作符重载,因此
timestamp-timestamp
为您提供了一个
间隔。然后可以将
间隔
传递给SQL标准
extract()
函数,在这种情况下,给出两个时间戳之间的总秒数。(见附件。)

在SQLite中,没有此类列类型,因此有两种选择:

  • 直接将日期时间存储为Unix时间戳;此时,
    extract epoch from
    是多余的,因为
    r.fecha_out-r.fecha_in
    将以秒为单位给出差值
  • 将日期时间存储为标准格式的字符串,并使用。在这种情况下,可以使用
    strftime('%s',foo)
    将每个值转换为Unix时间戳,例如
    strftime('%s',r.fecha_out)-strftime('%s',r.fecha_In)

SQLite是完全动态类型化的,这对于关系数据库来说很少见

相反,Postgres是严格类型的,并且使用操作符重载,因此
timestamp-timestamp
为您提供了一个
间隔。然后可以将
间隔
传递给SQL标准
extract()
函数,在这种情况下,给出两个时间戳之间的总秒数。(见附件。)

在SQLite中,没有此类列类型,因此有两种选择:

  • 直接将日期时间存储为Unix时间戳;此时,
    extract epoch from
    是多余的,因为
    r.fecha_out-r.fecha_in
    将以秒为单位给出差值
  • 将日期时间存储为标准格式的字符串,并使用。在这种情况下,可以使用
    strftime('%s',foo)
    将每个值转换为Unix时间戳,例如
    strftime('%s',r.fecha_out)-strftime('%s',r.fecha_In)

SQLite是完全动态类型化的,这对于关系数据库来说很少见

相反,Postgres是严格类型的,并且使用操作符重载,因此
timestamp-timestamp
为您提供了一个
间隔。然后可以将
间隔
传递给SQL标准
extract()
函数,在这种情况下,给出两个时间戳之间的总秒数。(见附件。)

在SQLite中,没有此类列类型,因此有两种选择:

  • 直接将日期时间存储为Unix时间戳;此时,
    extract epoch from
    是多余的,因为
    r.fecha_out-r.fecha_in
    将以秒为单位给出差值
  • 将日期时间存储为标准格式的字符串,并使用。在这种情况下,可以使用
    strftime('%s',foo)
    将每个值转换为Unix时间戳,例如
    strftime('%s',r.fecha_out)-strftime('%s',r.fecha_In)

SQLite是完全动态类型化的,这对于关系数据库来说很少见

相反,Postgres是严格类型的,并且使用操作符重载,因此
timestamp-timestamp
为您提供了一个
间隔。然后可以将
间隔
传递给SQL标准
extract()
函数,在这种情况下,给出两个时间戳之间的总秒数。(见附件。)

在SQLite中,没有此类列类型,因此有两种选择:

  • 直接将日期时间存储为Unix时间戳;此时,
    extract epoch from
    是多余的,因为
    r.fecha_out-r.fecha_in
    将以秒为单位给出差值
  • 将日期时间存储为标准格式的字符串,并使用。在这种情况下,可以使用
    strftime('%s',foo)
    将每个值转换为Unix时间戳,例如
    strftime('%s',r.fecha_out)-strftime('%s',r.fecha_In)