在sql查询中转换列名与转换值有何不同

4bbkushb  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(308)

比如说 cast(PURCHASE_DATE as date) > '2020-01-01' 与。 PURCHASE_DATE > cast('2020-01-01' as date format) 关于上述问题,我有几个问题:
我在我的应用程序上测试了这些,结果都是一样的。有没有一个方案会失败?
这两个表达式在资源使用方面有何不同?
铸造一个列是否铸造了它想要比较的所有值,而不是将不等式的右侧铸造一次,以便与该列中的所有值进行比较?

omvjsjqw

omvjsjqw1#

如果您使用purchase\u date作为datetime类型column,那么您可以使用cast(columas date),这样您就可以更好地使用column类型,并且可能在可伸缩性方面。另一种方法是只硬编码日期变量,而不使用数据类型的优点,如更改时区(如果使用)。请参阅:11.2.2日期、日期时间和时间戳类型

e7arh2l6

e7arh2l62#

顺便说一句,你不需要设定日期,因为你是这样使用的:

WHERE PURCHASE_DATE > '2020-01-01'

或者,对于数字:

WHERE PURCHASE_ID > '0001000'

teradata允许很多隐式转换。

相关问题