SQL 13 个月的交易和数量数据提取每月细分
SQL 13 months transaction and quantity data extract broken down per month
我正在阅读几篇较旧的帖子并尝试将相同的逻辑应用于我的问题,我需要提取每月分解的 13 个月的数据,我还想将数据应用于相关 headers...任何建议。请查看下面的代码并收到错误。
SELECT ST.TXDATE, ST.CODE, ST.QUANTITY
FROM StocTran ST
WHERE ST.TXDATE >= DATEADD(MONTH, -13, CAST(GETDATE() AS DATE))
ORDER BY ST.TXDATE
ERROR: [Elevate Software][DBISAM] DBISAM Engine Error # 11949 SQL
parsing error - Expected end of statement but instead found ( in
SELECT SQL statement at line 3, column 27 Error Code: 11949
DATEADD 是 MS 的 TransactSQL 中用于 Sql 服务器的一个函数。我不知道 DBIsam 是否支持它,它也没有列在 DBIsam 支持的函数列表中:
通常,日期函数不能跨不同的 SQL 引擎移植,从该列表中,一种可能是改用 EXTRACT
函数:
The EXTRACT function returns a specific value from a date, time, or timestamp value. The syntax is as follows:
EXTRACT(extract_value
FROM column_reference or expression)
EXTRACT(extract_value,
column_reference or expression)
Use EXTRACT to return the year, month, week, day of week, day, hours, minutes, seconds, or milliseconds from a date, time, or timestamp column. EXTRACT returns the value for the specified element as an integer.
The extract_value parameter may contain any one of the specifiers:
YEAR
MONTH
WEEK
DAYOFWEEK
DAYOFYEAR
DAY
HOUR
MINUTE
SECOND
MSECOND
即使您很着急,我也强烈建议您仔细阅读该页面。
更新:从谷歌搜索 dbisam dateadd
看来,Elevate 对于 DATEADD
的等价物没有很好的答案。其中一个热门话题是这个话题:
https://www.sqlservercentral.com/Forums/Topic173627-169-1.aspx
建议使用 Delphi 的内置日期函数(例如 IncMonth
,我建议您在回答另一个问题时使用它。基本上,您会计算日期范围的开始日期和结束日期,然后将它们转换为字符串以构造一个 WHERE 子句,其中的列日期(来自您的数据库)等于或大于开始日期且小于或等于结束日期.
我正在阅读几篇较旧的帖子并尝试将相同的逻辑应用于我的问题,我需要提取每月分解的 13 个月的数据,我还想将数据应用于相关 headers...任何建议。请查看下面的代码并收到错误。
SELECT ST.TXDATE, ST.CODE, ST.QUANTITY
FROM StocTran ST
WHERE ST.TXDATE >= DATEADD(MONTH, -13, CAST(GETDATE() AS DATE))
ORDER BY ST.TXDATE
ERROR: [Elevate Software][DBISAM] DBISAM Engine Error # 11949 SQL parsing error - Expected end of statement but instead found ( in SELECT SQL statement at line 3, column 27 Error Code: 11949
DATEADD 是 MS 的 TransactSQL 中用于 Sql 服务器的一个函数。我不知道 DBIsam 是否支持它,它也没有列在 DBIsam 支持的函数列表中:
通常,日期函数不能跨不同的 SQL 引擎移植,从该列表中,一种可能是改用 EXTRACT
函数:
The EXTRACT function returns a specific value from a date, time, or timestamp value. The syntax is as follows:
EXTRACT(extract_value
FROM column_reference or expression)
EXTRACT(extract_value,
column_reference or expression)
Use EXTRACT to return the year, month, week, day of week, day, hours, minutes, seconds, or milliseconds from a date, time, or timestamp column. EXTRACT returns the value for the specified element as an integer.
The extract_value parameter may contain any one of the specifiers: YEAR MONTH WEEK DAYOFWEEK DAYOFYEAR DAY HOUR MINUTE SECOND MSECOND
即使您很着急,我也强烈建议您仔细阅读该页面。
更新:从谷歌搜索 dbisam dateadd
看来,Elevate 对于 DATEADD
的等价物没有很好的答案。其中一个热门话题是这个话题:
https://www.sqlservercentral.com/Forums/Topic173627-169-1.aspx
建议使用 Delphi 的内置日期函数(例如 IncMonth
,我建议您在回答另一个问题时使用它。基本上,您会计算日期范围的开始日期和结束日期,然后将它们转换为字符串以构造一个 WHERE 子句,其中的列日期(来自您的数据库)等于或大于开始日期且小于或等于结束日期.