有没有办法在sql中只计算一次重复计算?

时间:2014-09-29 07:37:16

标签: mysql sql jdbc

我使用JDBC来查询查询包含多次相同计算的位置。 例如:

SELECT 
DATE(CONVERT_TZ(FROM_UNIXTIME(my_time + timezone_offset * 60), @@session.time_zone, '+00:00')),
UNIX_TIMESTAMP(DATE(CONVERT_TZ(FROM_UNIXTIME(my_time + timezone_offset * 60), @@session.time_zone, '+00:00')))
FROM my_table;

我可以在不进行多次计算的情况下以某种方式进行此操作吗?

(它会使性能更好,而且代码看起来也更清晰)

1 个答案:

答案 0 :(得分:0)

您可以使用派生表(FROM子句中的子查询):

select mydate, UNIX_TIMESTAMP(mydate)
from
(
  SELECT 
  DATE(CONVERT_TZ(FROM_UNIXTIME(my_time + timezone_offset * 60), @@session.time_zone, '+00:00')) as mydate,
  FROM my_table
);