从视图中的日期字段中提取月份

时间:2018-04-23 08:24:18

标签: sql firebird firebird-2.0

我想创建一个带有日期字段的视图,该字段从另一个日期字段中提取月份。 我看到很多函数可以使用参数中的日期,但我想使用日期字段。

create view V_statmag
as
select CODP ,
FLJMA ,
DTJOUR extract(month FROM DTJOUR) as dt_month,
NBCLIENT ,
NBORDER 
FROM DSTATMAG

这将允许我根据所选月份过滤数据。

我有这个错误:

  

消息:isc_dsql_prepare失败

     

SQL消息:-104   令牌无效

     

引擎代码:335544569   引擎消息:   动态SQL错误   SQL错误代码= -104   令牌未知 - 第5行,第10列   提取

2 个答案:

答案 0 :(得分:1)

排队

DTJOUR extract(month FROM DTJOUR) FROM DSTATMAG,

" DTJOUR"之间缺少komma。和"提取"。

答案 1 :(得分:0)

DTJOUR extract(month FROM DTJOUR)

DTJOUR是表达的一部分 extract(...)是表达的另一部分。

但表达式的多个部分将与某个运算符连接以进行计算。

你想做什么 - 让我们假设这个月是2月 - 正在表达DTJOUR 2

这是一个错误的公式。您可以拥有DTJOUR + 2DTJOUR - 2DTJOUR * 2 - 但是当您尝试制作表达式时,应该有一些链接运算符。没有操作员的DTJOUR 2没有任何意义。

你给firebird的内部计算器提供两个不同的值,你要求它组合它们并在返回时只给你一个值,但是你没有给出任何法则计算器究竟应该如何组合这两个值。

制作正确的表达式:要么指定一些运算符 - 将两个值组合成一个的定律,要么删除其中一个值。

https://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25-commons-expressions.html