postgresql - 如何从postgresql中表的更改列的结果中查询
问题描述
所以我在表中有一个字符串时间列,现在我想将该时间更改为日期时间类型,然后查询选定日期的数据。
有直接的方法吗?我能想到的一种方法是 1)添加一个新列 2)使用转换后的日期将值插入其中 3)使用新列进行查询
在这里,我坚持使用 INSERT 的第二步,所以需要帮助
ALTER TABLE "nds".”unacast_sample_august_2018"
ADD COLUMN new_date timestamp
-- Need correction in select statement that I don't understand
INSERT INTO "nds".”unacast_sample_august_2018” (new_date)
(SELECT new_date from_iso8601_date(substr(timestamp,1,10))
有人可以帮助我更正,如果可能的话,还有更好的方法吗?
尝试了其他方式一步完成,但给出了错误Column does not exist new_date
SELECT *
FROM (SELECT from_iso8601_date(substr(timestamp,1,10)) FROM "db_name"."table_name") AS new_date
WHERE new_date > from_iso8601('2018-08-26') limit 10;
和
SELECT new_date = (SELECT from_iso8601_date(substr(timestamp,1,10)))
FROM "db_name"."table_name"
WHERE new_date > from_iso8601('2018-08-26') limit 10;
有人可以纠正这些查询吗?
解决方案
解决如下:
select *
from
(
SELECT from_iso8601_date(substr(timestamp,1,10)) as day,*
FROM "db"."table"
)
WHERE day > date_parse('2018-08-26', '%Y-%m-%d')
limit 10
推荐阅读
- python - TensorFlow 对象不显示
- ios - 当在 Swift 中的表中发生变化时更改表的标题
- android - 任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的Android Studio执行失败
- bash - 在 bash shell 中查找所有匹配的文件并重命名
- python - 我试图通过传递字符串来获得最大数量
- hyperledger-fabric - 无法获取 chConfig 缓存引用:QueryBlockConfig 失败:queryChaincode 失败:
- node.js - 摩卡间谍返回 callCount 0
- java - Javers 将字段与注释进行比较
- javascript - 根据百分比计算两个坐标之间的点(球形)
- multithreading - 子线程看不到主线程所做的更新