【问题标题】:Is there a way to calculate repeating calculations only once in sql?有没有办法在sql中只计算一次重复计算?
【发布时间】:2014-09-29 07:37:16
【问题描述】:

我使用 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;

我可以不进行多次计算而以某种方式做到吗?

(它会让性能更好,而且代码看起来更干净)

【问题讨论】:

    标签: mysql sql jdbc


    【解决方案1】:

    您可以使用派生表(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
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 2018-02-24
      • 2021-06-02
      • 2023-02-23
      • 2012-10-16
      相关资源
      最近更新 更多