sia*_*sia 3 sql amazon-redshift
我在 Amazon redshift 的 sql 代码中看到 ::date 在比较两个日期时使用。我想知道这三行代码之间有什么区别:
start_date < '2016-01-01'
start_date < '2016-01-01'::date
start_date < date('2016-01-01')
Run Code Online (Sandbox Code Playgroud)
在所有三种情况下,结果都是一样的。
具体来说:
start_date < '2016-01-01'正在尝试将 adate与 a进行比较varchar,但 Amazon Redshift 足够聪明,可以将varchara转换为日期格式以进行比较。
start_date < '2016-01-01'::date正在对两个date字段进行适当的比较。这将相当于date '2016-01-01'.
start_date < date('2016-01-01')似乎也在比较date字段,尽管日期和时间函数文档中没有该语法。
一个更有用的例子::date是比较两个时间戳,而您只希望比较日期,例如:
select end::date - start::date as days FROM table
Run Code Online (Sandbox Code Playgroud)