有沒有辦法將日期投射到時間戳。例如,如果我有像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 –