有没有办法将日期投射到时间戳。例如,如果我有像2012/05/01
这样的日期,我怎样才能将它转换为时间戳,如2012-05-01 00:00:01
在pgSQL中投射日期到时间戳
回答
您可以将日期列转换为文本,然后与时间戳的时间部分连接。在下面的查询中,我从当前日期创建一个时间戳。
select (cast(current_date as text) || ' 00:00:01'):: timestamp
from yourTable;
或者,如果我们已经有一个日期类型,我们可以简单地添加时间成分:
select current_date + '00:00:01'::time
输出:
11.07.2017 00:00:01
Demo
更新:
如果你只是想在几个月的差别两个日期之间,你可以使用以下命令:
DATE_PART('month', AGE(end_date, start_date))
当然,这里存在不涉及时间成分,但假设你正在计划分配虚拟00:00:01
对两个时间戳,结果都不会改变。
我的存储过程输入变量是start_date和end_date 。但是这给出了一个错误 '提取(年龄)* 12 +提取(月龄从月)AS months_ between FROM age(TIMESTAMP'cast(start_date as text)||'00:00:01'):: timestamp' ,TIMESTAMP'cast(end_date as text)|| '00:00:01'):: timestamp');' –
由于代码错误,导致错误,您在那里有不平衡的引号。也许更新你的问题,让我们知道你为什么需要这样做。通常情况下,你不应该这样形成时间戳。 –
我需要从两个日期中获取月份期间。你能解释一下如何将这两个变量集成到这个代码中吗? –
您可以添加部分时间日期
select current_date + '00:00:01'::time
您可以使用此代码,将其转换为timestamp
:
SELECT current_date::timestamp
这将直接00:00:00
分配时间current_date
。
它给了我这个错误。end_dates是我的日期变量 '错误:类型时间戳的无效输入语法:“end_dates” SQL状态:22007 上下文:PL/pgSQL函数gettargetreports(date,date) –
select cast(current_date as timestamp) + interval '1 second'
接近标准SQL,只有间隔语法不同interval '1' second
。
- 1. 将日期时间投射到OracleTimeStampTZ
- 2. 日期到Unix时间戳
- 3. 日期到时间戳nanos
- 4. 将日期时间64投射到不同的时间单位
- 5. 在oracle中投射日期
- 6. 从日期时间到时间戳python
- 7. Unix时间戳到.net日期时间
- 8. 时间戳到长日期时间
- 9. 日期时间戳
- 10. 日期到时间戳在JavaScript
- 11. 在创建查询时将created_at投射到时间戳
- 12. 如何从日期时间戳得到时间和日期
- 13. 检查PL/pgSQL中的时间戳
- 14. 明确日期/日期时间投
- 15. AutoMapper投影 - 日期/时间
- 16. SQL投日期时间
- 17. 如何从日期时间戳的时间和日期在PHP
- 18. PHP MYSQL日期,时间,日期时间和时间戳
- 19. 时间戳,日期,时间或日期时间是哪个?
- 20. PHP日期和时间戳
- 21. PHP日期时间戳
- 22. 时间戳更改日期
- 23. 按时间戳日期组
- 24. Sqoop - 日期 - 时间戳
- 25. SQlite3 - SQL日期时间戳
- 26. 从时间戳到正常日期
- 27. Visual Basic添加到时间戳日期
- 28. sqoop日期到impala时间戳
- 29. 转换日期到PHP的时间戳
- 30. 到Java日期的SQL时间戳?
你有没有看过[Postgresql数据类型格式化函数](https://www.postgresql.org/docs/9.6/static/functions-formatting.html)? –
你尝试过哪些工作没有成功。张贴也是。 –
'提取物(年龄)* 12 +提取物(从年龄算起)AS months_between FROM age(TIMESTAMP'2012-06-13 10:38:40',TIMESTAMP'2011-04-30 14:38:40' )' 我有一个日期变量,我需要用日期变量替换这个硬编码的时间戳@LohitGupta –