3

UniData 中是否有相当于 sql server getdate() 函数的功能?我希望能够查询这样的表:

SELECT GETDATE() AS EXPORT_DATE, * FROM TABLE

4

2 回答 2

2

有两种方法可以做到这一点——一种更“标准”,另一种更灵活但略显尴尬。

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

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

进而

:LIST TABLE EXPORT_DATE

2)使用查询语言的Unidata“风味”避免创建DICT项目,但打字有点尴尬,您需要在ECLTYPE U中(或使用小写的命令(list,sort)强制ECLTYPE U ):

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

就个人而言,我几乎总是在用于报告的主表中有 TODAY、COUNTER、CURR.USER 等 DICT 项目。从 SQL 的角度来看,您可以将 I-Descriptor 视为小型迷你视图,它只返回一列。 这是一组有趣的示例,说明了可能返回的日期格式。

于 2017-09-20T21:53:01.633 回答
2
:AE VOC TODAY
001:  I
002:  DATE()
003:  D4/
004:
005:  10R
006:  S

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

您现在可以使用 TRAN.DATE = TODAY 列出交易

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

于 2018-01-17T23:27:17.537 回答