SQL 中两个简单日期格式日期的差异
Difference in two simpledateformat dates in SQL
我正在尝试通过执行以下操作来计算 entry/exit 时间的差异:
SELECT entry_time - exit_time AS dwell
但是,请相信这些值在 SimpleDateFormat 中:
2017-07-15T13:00:37-05:00
因此,我无法弄清楚在 Postgre 中将它们转换或转换成什么 Sql
我可以在 PySpark 中做到这一点,但现在我需要使用标准 SQL 来做到这一点。这是在 Spark 中工作的示例:
import pyspark.sql.functions as F
timeFmt = "yyyy-MM-dd'T'HH:mm:ss"
timeDiff = (F.unix_timestamp('exit_time', format=timeFmt)
- F.unix_timestamp('entry_time', format=timeFmt))
new_sdf = sdf.withColumn("Dwell", timeDiff)
非常感谢任何帮助!
您可以在 PostgreSQL 中强制转换这样的值来获取时间戳:
SELECT CAST('2017-07-15T13:00:37-05:00' AS timestamp with time zone);
timestamptz
------------------------
2017-07-15 20:00:37+02
(1 row)
然后使用时间戳算法将两个时间戳相减得到interval
。
我正在尝试通过执行以下操作来计算 entry/exit 时间的差异:
SELECT entry_time - exit_time AS dwell
但是,请相信这些值在 SimpleDateFormat 中:
2017-07-15T13:00:37-05:00
因此,我无法弄清楚在 Postgre 中将它们转换或转换成什么 Sql
我可以在 PySpark 中做到这一点,但现在我需要使用标准 SQL 来做到这一点。这是在 Spark 中工作的示例:
import pyspark.sql.functions as F
timeFmt = "yyyy-MM-dd'T'HH:mm:ss"
timeDiff = (F.unix_timestamp('exit_time', format=timeFmt)
- F.unix_timestamp('entry_time', format=timeFmt))
new_sdf = sdf.withColumn("Dwell", timeDiff)
非常感谢任何帮助!
您可以在 PostgreSQL 中强制转换这样的值来获取时间戳:
SELECT CAST('2017-07-15T13:00:37-05:00' AS timestamp with time zone);
timestamptz
------------------------
2017-07-15 20:00:37+02
(1 row)
然后使用时间戳算法将两个时间戳相减得到interval
。