我已经在Google Cloud Bigquery上部署了webapp,当我查询数据时出现错误"400 No matching signature for operator BETWEEN for argument types: DATE, STRING, STRING. Supported signature: (ANY) BETWEEN (ANY) AND (ANY) at [2:38]"
。这是我的SQL:
"""SELECT
Record_Start_Time, Generator_Power
FROM
Furnace.FurnaceData
WHERE
Record_Start_Time BETWEEN TIMESTAMP("2018-01-21")
AND
TIMESTAMP("2018-07-21")
ORDER BY Record_Start_Time
LIMIT 100""".format(request.form['start'],request.form['end'])
根据您收到的错误消息(我同意您的问题中的注释,这很奇怪,我怀疑与该特定查询不符),它看起来像是字段Record_Start_Time
类型DATE
,而在BETWEEN
操作符中您正在使用TIMESTAMP
取而代之。
您应该了解收到的错误消息的方式如下:
[...] operator BETWEEN for argument types: DATE, STRING, STRING. Supported signature: (ANY) BETWEEN (ANY) AND (ANY)
此错误的装置,对于所支持的签名BETWEEN
操作者field BETWEEN a AND b
,其中field
,a
并且b
应该是相同类型的(
ANY )。此外,错误消息还告诉您您正在执行以下操作:_DATE_ BETWEEN _STRING_ AND _STRING_
即,您正在尝试将一个DATE
类型与一个STRING
类型进行比较。这看起来很奇怪,因为TIMESTAMP("2018-01-21")
它的TIMESTAMP
类型不是STRING
,但我想说的是,您过去曾尝试运行类似的查询WHERE Record_Start_Time BETWEEN "2018-01-21" AND "2018-07-21"
,而您共享的错误消息就是与该查询相对应的错误消息。对于您共享的查询,错误消息应该是:
400 No matching signature for operator BETWEEN for argument types: DATE, TIMESTAMP, TIMESTAMP. Supported signature: (ANY) BETWEEN (ANY) AND (ANY) at [2:38]
长话短说,确认Record_Start_Time
字段的DATE
类型和大小写,将您的WHERE
子句更改为以下内容:
WHERE
Record_Start_Time BETWEEN DATE("2018-01-21")
AND
DATE("2018-07-21")
主要内容:Oracle TIMESTAMP数据类型简介,Oracle TIMESTAMP文字,Oracle TIMESTAMP示例,格式化TIMESTAMP值,提取TIMESTAMP组件,默认的TIMESTAMP格式在本教程中将学习Oracle 数据类型以及如何在Oracle数据库中有效处理数据。 Oracle TIMESTAMP数据类型简介 数据类型用于存储日期和时间数据,包括年,月,日,时,分和秒。 另外,它存储小数秒,它不是由DATE数据类型存储的。 要定义列,请使用以下语法: 指定字段小
本文向大家介绍mysql 数据类型TIMESTAMP,包括了mysql 数据类型TIMESTAMP的使用技巧和注意事项,需要的朋友参考一下 在mysql中timestamp数据类型是一个比较特殊的数据类型,他可以自动在你不使用程序更新情况下只要你更新了记录timestamp会自动更新时间 通常表中会有一个Create date 创建日期的字段,其它数据库均有默认值的选项。MySQL也有默认值tim
问题内容: 我需要将 时间 和 日期 都存储在mysql中。所以我使用了函数。但是我不知道我应该为phpmyadmin 类型列 使用什么。应该注意的是,返回时间和日期都是这样的: 这是一个解决方案,我可以使用分隔符来分隔日期和时间(和),然后将它们分别存储在DATE类型和TIME类型中。或者,我可以使用VARCHAR类型将它们都存储在一列中。但是我认为这些方法不是标准的。存储日期和时间的标准类型是
我正在获取cloud firestore的数据&试图通过使用下面的代码在我的应用程序中显示。 我正在使用dart包对其进行格式化。但是,在更新了最新的云firestore插件后,我得到了这个错误- 无法理解如何将此“timestamp”对象解析为“datetime”。因为插件需要DateTime对象格式的数据。
我正在尝试使用nifi将CSV记录插入Postgres数据库。 示例csv文件: 当nifi场景运行时,它会给出以下错误 错误列“timenow”的类型为timestamp,没有时区,但表达式的类型为character variating 如果我使用正常的 没有错误值插入到表中。我必须更改nifi配置才能将其添加到表中吗? 我换了Nifi CSVReader- 编辑:在第一条注释之后,Nifi生成