UniData当前日期函数

时间:2017-09-20 14:59:41

标签: u2 unidata

在UniData中是否有与sql server getdate()函数相同的功能?我希望能够像这样查询一个表:

SELECT GETDATE() AS EXPORT_DATE, * FROM TABLE

2 个答案:

答案 0 :(得分:2)

有两种方法可以做到这一点 - 一种是更多"标准",另一种更灵活但稍微尴尬。

1)创建一个I-descriptor,返回当前日期,如下所示:

: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项目。您可以将I-Descriptors视为从SQL角度看的小迷你视图,它只返回一列。 Here's关于可能返回的日期格式的一组有趣示例。

答案 1 :(得分:1)

: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位数字。