首页 > 解决方案 > 在 SQL 查询中转换列名与转换值有何不同

问题描述

比如说

cast(PURCHASE_DATE as date) > '2020-01-01'

对比

PURCHASE_DATE > cast('2020-01-01' as date format)

关于上述问题,我有几个问题:

  1. 我在我的应用程序上测试了这些,它们都导致了相同的结果。是否存在失败的情况?
  2. 这两种表达方式在资源使用方面有何不同?
  3. 转换一列是否会转换它想要比较的每个值,而不是将不等式的右侧转换一次以与该列中的所有值进行比较?

标签: mysqlsqlteradata

解决方案


顺便说一句,如果您以这种方式使用它,则不需要指定日期:

WHERE PURCHASE_DATE > '2020-01-01'

或者这个,对于数字:

WHERE PURCHASE_ID > '0001000'

Teradata 允许大量隐式转换。


推荐阅读