UniData 当前日期函数

UniData Current Date Function

UniData 中是否有与 sql 服务器 getdate() 函数等效的函数?我希望能够像这样查询 table:

SELECT GETDATE() AS EXPORT_DATE, * FROM TABLE

有两种方法可以做到这一点 - 一种更 "standard",另一种更灵活但有点笨拙。

1) 创建一个 return 当前日期的 I 描述符,如下所示:

:AE DICT TABLE EXPORT_DATE
001 I
002 DATE()
003 D4/
004
005 10R
006 S

然后

:LIST TABLE EXPORT_DATE

2) 使用查询语言的 Unidata "flavor" 避免创建 DICT 项,但输入起来有点笨拙,您需要在 ECLTYPE U 中(或使用命令 (list, sort) 小写强制 ECLTYPE U):

:list TABLE EVAL "OCONV(DATE(),'D4/')" COL.HDG "EXPORT_DATE"

就个人而言,我几乎总是在用于报告的主表中有 TODAY、COUNTER、CURR.USER 等 DICT 项目。从 SQL 的角度,您可以将 I-Descriptors 视为小的迷你视图,只有 return 一列。 Here's 关于 return 可能的日期格式的一组有趣示例。

:AE VOC TODAY
001:  I
002:  DATE()
003:  D4/
004:
005:  10R
006:  S

通过将其放入 VOC,该环境中定义的所有文件现在都可以访问它。

您现在可以列出 TRAN.DATE = 今天

的交易

这会将 TRANSACTIONS 文件中的字段 TRAN.DATE 与日期函数 DATE() 返回的今天日期进行比较。所有 Pick 语言,即 UniData,都使用一个内部日期,即 12/31/1967(Dick Pick 的女儿出生那年)过去的天数。第 3 行的转换,"D4/" 转换该内部日期显示为 MM/DD/CCYY 格式。将“/”更改为“-”使其看起来像 MM-DD-CCYY,将 4 更改为 2 将更改日期以仅显示有效的最后 2 位数字。