Sql 我需要从dateColumn获取月份和年份
我陷入了查询的这一部分,我只需要从我的表中获取月份和年份 在上下文中,我尝试使用“TRUNC_DATE”,Oracle会返回一个错误,如 ORA-00904:“日期”:无效标识符sql 这段查询是从Udacity获得的,但在sqldeveloper中,它似乎不起作用 当我尝试更深入地搜索时,我发现像convert(char(7),ia.invoice_date(),120)yearMonth这样的东西,它仍然不起作用,并且返回了一个错误。ORA-00936:缺少表达式 我尝试了很多方法,但没有解决办法 如果有人有什么想法能帮上忙,我将不胜感激 下面我粘贴了查询指南帮助的片段: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:缺少表达式 我尝试了很多方法,但没有解
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
您不需要截断到月的第一天,因为您将丢弃日期部分。您的意思是希望月的第一天仍然作为日期数据类型;或者年和月作为(比如)数字;还是以一种特殊的方式编排字符串?谢谢,我会考虑的!