Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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
Sql 我需要从dateColumn获取月份和年份_Sql_Oracle_Date - Fatal编程技术网

Sql 我需要从dateColumn获取月份和年份

Sql 我需要从dateColumn获取月份和年份,sql,oracle,date,Sql,Oracle,Date,我陷入了查询的这一部分,我只需要从我的表中获取月份和年份 在上下文中,我尝试使用“TRUNC_DATE”,Oracle会返回一个错误,如 ORA-00904:“日期”:无效标识符sql 这段查询是从Udacity获得的,但在sqldeveloper中,它似乎不起作用 当我尝试更深入地搜索时,我发现像convert(char(7),ia.invoice_date(),120)yearMonth这样的东西,它仍然不起作用,并且返回了一个错误。ORA-00936:缺少表达式 我尝试了很多方法,但没有解

我陷入了查询的这一部分,我只需要从我的表中获取月份和年份

在上下文中,我尝试使用“TRUNC_DATE”,Oracle会返回一个错误,如 ORA-00904:“日期”:无效标识符sql 这段查询是从Udacity获得的,但在sqldeveloper中,它似乎不起作用

当我尝试更深入地搜索时,我发现像convert(char(7),ia.invoice_date(),120)yearMonth这样的东西,它仍然不起作用,并且返回了一个错误。ORA-00936:缺少表达式

我尝试了很多方法,但没有解决办法

如果有人有什么想法能帮上忙,我将不胜感激

下面我粘贴了查询指南帮助的片段:

SELECT 
COUNT(ia.invoice_id) total_de_facturas,
SUM(ia.invoice_amount) monto_total,
convert(char(7), ia.invoice_date(), 120) yearMonth
来自AP.AP\U发票\U所有ia
按ia.vendor\u id分组

您将Oracle语法与Postgres(
date\u trunc()
)和SQL Server(
convert()
)混合使用。许多日期函数都是特定于供应商的,因此您可以学习数据库的相关语法

在Oracle中,您可以使用
trunc()
将日期截断为每月的第一天:

trunc(ia.invoice_date, 'mm')

使用EXTRACT函数,试用这些函数来测试其工作原理,并在查询中使用它-

SELECT EXTRACT(YEAR FROM DATE '2020-03-07') FROM DUAL;
SELECT EXTRACT(MONTH FROM DATE '2020-03-07') FROM DUAL;

如果您想要YYYY-MM格式的字符串值-这似乎是您的意图,来自SQL Server语法
convert()
call中的120样式和
char(7)
,那么您可以在该格式模型中使用
to_char()

to_char(ia.invoice_date, 'YYYY-MM') as yearMonth

您不需要截断到月的第一天,因为您将丢弃日期部分。

您的意思是希望月的第一天仍然作为日期数据类型;或者年和月作为(比如)数字;还是以一种特殊的方式编排字符串?谢谢,我会考虑的!