Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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
Database 使用EXTRACT获取单元时出现PostgreSQL错误_Database_Postgresql_Extract - Fatal编程技术网

Database 使用EXTRACT获取单元时出现PostgreSQL错误

Database 使用EXTRACT获取单元时出现PostgreSQL错误,database,postgresql,extract,Database,Postgresql,Extract,我一直在尝试从指定的时间戳中提取月份: SELECT EXTRACT(MONTH FROM '2019-01-02 00:00:00+00'); 但我得到了以下错误: 错误:函数pg_catalog.date_partunknown,unknown不是唯一的 第1行:从“2019-01-02 00:00:00+00”中选择提取月份提示: 无法选择最佳候选函数。您可能需要添加 显式类型转换。SQL状态:42725字符:8 但是,当我使用指定当前_TIMESTAMP变量的相同命令时,将返回预期结果

我一直在尝试从指定的时间戳中提取月份:

SELECT EXTRACT(MONTH FROM '2019-01-02 00:00:00+00');
但我得到了以下错误:

错误:函数pg_catalog.date_partunknown,unknown不是唯一的 第1行:从“2019-01-02 00:00:00+00”中选择提取月份提示: 无法选择最佳候选函数。您可能需要添加 显式类型转换。SQL状态:42725字符:8

但是,当我使用指定当前_TIMESTAMP变量的相同命令时,将返回预期结果

SELECT EXTRACT(MONTH FROM CURRENT_TIMESTAMP);

如何从第一次尝试返回预期结果中获取单位?

将字符串转换为时间戳:

SELECT EXTRACT(MONTH FROM TIMESTAMP '2019-01-02 00:00:00+00');
一段来自:

从源中提取字段

。。。源必须是类型为timestamp、time或time的值表达式 间隔日期类型的表达式被强制转换为时间戳,并且可以 因此也可以使用


在尝试通过C和LINQ的Postgres适配器运行类似查询时,我遇到了相同的错误消息。编译后的查询将DateTime参数传递到诸如EXTRACTMONTH FROM$1之类的子句中,即使我的LINQ查询是使用DateTime.Month整数属性编写的,例如dbRecord.created\u date.Month==myPOCO.created.Month


我可以通过将myPOCO.created.Month拉出到一个单独的int变量来绕过这个问题,这允许SQL引擎推断一个整数参数而不是日期时间,并构建一个正确且更快的语句,而无需调用EXTRACT和myPOCO.created.Month。

啊,我没有意识到我必须显式强制转换。我认为这将是足够聪明的interprit类型!谢谢: