【发布时间】:2011-12-20 16:00:31
【问题描述】:
我在水晶报表中有一个 SQL 命令(如果您不熟悉水晶,也可以),我需要将日期参数转换为小数(以匹配数据库中的列。)
SELECT decimaldate FROM TABLE1 WHERE decimaldate = {?normaldate}
--ex: 12/01/2011 needs to become 12012011
如果我在上述查询中使用 CAST,则它不起作用:
SELECT decimaldate FROM TABLE1 WHERE decimaldate =
CAST(CAST{?normaldate} AS VARCHAR) AS DECIMAL)
【问题讨论】:
-
在crystal中,crystal使用SQL,虽然数据源是DB2
-
DB2 有
DatePart函数吗? -
可能,但是我在 Crystal 中使用 SQL,所以我必须使用 DB2 命令吗?
-
@user719825:decimaldate 是如何存储在数据库中的?是从纪元日期(类似于 Unix 日期戳)、传统日期的 8 位音译(例如今天的 20121220)或其他方式开始流逝的时间吗?
-
我们还需要了解您的十进制类型如何表示日期?例如,
0.0是否代表01-01-1970 00:00:00.000和0.5代表01-01-1970 12:00:00.000?在不知道编码方式的情况下,我们无法确保给您一个准确的答案。 [这解释了@MarkBannister,他也刚刚问了一个类似的问题。]
标签: sql database crystal-reports db2