sql - 在 SSRS 查询中显示从日期开始的年月

标签 sql sql-server postgresql reporting-services

我目前正在使用 SSRS 连接到 Adempiere (postgresql)

在查询中,我试图从日期中提取月-年数据,以便我可以将其用于数据透视表/矩阵目的。

但是,当我使用这个

> SELECT        DATEADD(MONTH, DATEDIFF(MONTH, 0, adempiere.c_invoice.dateinvoiced, 0),
> 
> FROM            adempiere.c_invoice

我遇到这样的错误

>SQL Execution Error
>
>Excuted SQL statement: SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,dateinvoiced,0)
>
> FROM adempere.c_invoice 
>
>Error Source: PSQLODBC.DLL Error Message:
>
> ERROR [42601] ERROR: syntax error at or near "FROM"; 
>
>Error while executing query

我到处搜索,然后才意识到我的问题是否是一个独特的问题。也许不是,但我希望有人可以帮助我,如果我转向错误的方向或者有一些解决方法

非常感谢!

最佳答案

由于您正在查询 Postgres 数据库,您显然不能使用特定于 SQL-Server 的 dateadd()

使用像这样的 Postgres 函数:

SELECT date_trunc('month', dateinvoiced) AS month_year1
      ,to_char(dateinvoiced, 'MM-YYYY')  AS month_year2
FROM   adempiere.c_invoice

任何符合您模糊定义的Month-Year更好。
第一个生成截断为月份精度的 timestampMore about date_trunc() in the manual.
第二个生成 text 模式 06-2013More about to_char() in the manual.

关于sql - 在 SSRS 查询中显示从日期开始的年月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17425108/

相关文章:

java - 使用带有通配符的 Like 子句运行PreparedStatement

sql - 如何实现条件Upsert存储过程?

mysql - SQL SELECT 基于其他 3 个 tasbles 值

sql - 尽管使用了别名,但我从内部查询中找不到列

mysql - 在 mysql 中使用 Count 与 AND、OR 或 NOT 条件(带或不带 HAVING)?

sql-server - sp_who2 BlkBy 休眠进程等待命令

postgresql - 按百分比限制而不是没有子查询的行数

java - 使用 java 在终端中读取 postgres 表

sql - 计算每种奖励类型的平均值

MySQL 返回特定用户的总体排名事件