不知道你的版本是什么, 在1.9中, 申明为TIMESTAMP类型的属性,需要是 格式化为YYYY-MM-DD'T'HH:mm:ss.SSS'Z' 不过你可以从外部传入13位时间戳,也可以转换成TIMESTAMP, 比如DDL中定义
CREATE TABLE `t` ( ctm TIMESTAMP, ) WITH ( 'format.schema' = 'ROW<ctm LONG>' )" 。如果数据源也要定义为TIMESTAMP类型,则通过下面方式去定义外部数据源格式: DateTimeFormatter t = new DateTimeFormatterBuilder() .append(DateTimeFormatter.ISO_LOCAL_DATE) .appendLiteral('T') .append(new DateTimeFormatterBuilder() .appendPattern("HH:mm:ss") .appendFraction(ChronoField.NANO_OF_SECOND, 0, 9, true) .appendPattern("'Z'") .toFormatter()) .toFormatter(); 用这个结构去格式化时间类型 Zhenghua Gao <doc...@gmail.com> 于2019年12月16日周一 下午7:42写道: > 1) ML里直接发截图无法展示,可以用第三方图床,然后链接过来。 > 2) 请确认 time1/time2 类型是否是 TIMESTAMP > 3) 文档中的 TIMESTAMP '2003-01-02 10:00:00' 代表标准SQL的时间常量(timestamp literal),你的 > TIMESTAMP time1 无法被视作时间常量。 > > *Best Regards,* > *Zhenghua Gao* > > > On Mon, Dec 16, 2019 at 3:51 PM 1530130567 <1530130...@qq.com> wrote: > > > 各位大佬好: > > 由于业务处理逻辑需要计算两个日期的时间差,按照惯例打开官网,查看buildin Functions,ctrC, ctrV,跑起来没问题! > > > > 然后我就改了一下: > > TIMESTAMPDIFF(DAY, TIMESTAMP time1,TIMESTAMP time2) > > SQL validate报错! > > 然后我又改了一下: > > TIMESTAMPDIFF(DAY, cast(time1 as timestamp),cast(time2 as timestamp)) > > 通过了! > > > > 我有点疑惑,TIMESTAMP是不是只适用于固定的字符串,而不能用列名这种变量? > > > > >