2016-06-27 73 views
1

對於轉換日期時間到SQL Server CE,我使用以下格式轉換日期時間到PostgreSQL的查詢指定的格式

對於Oracle:

var date = "TO_DATE('" 
+ ((DateTime)DateTime.UtcNow).ToString("MMddyyyy hh:mm:ss tt") 
+ "', 'mmddyyyy hh:mi:ss')"; 

而對於MySQL的:

var date = "STR_TO_DATE('" 
+ ((DateTime)DateTime.UtcNow).ToString("yyyyMMdd HH:mm:ss", new CultureInfo("en-us")) 
+ "','%Y%m%d %H:%i:%s')"; 

誰能告訴我如何轉換相同的PostgreSQL

注:我使用timestamp數據類型

+0

[日期/時間輸入](https://www.postgresql.org/docs/current/static/datatype-datetime.html#DATATYPE-DATETIME-INPUT)和['to_date' /'to_timestamp'函數]( https://www.postgresql.org/docs/current/static/functions-formatting.html) – Abelisto

回答

1

可以使用to_char功能格式化時間戳:

SELECT TO_CHAR(current_timestamp, 'MMDDYYYY HH24:MI:SS') 

編輯:
要回答在評論這個問題,同一個呼叫可應用於insert聲明中:

INSERT INTO my_table 
(formatted_timestamp_column, some_other_column) 
VALUES (TO_CHAR(current_timestamp, 'MMDDYYYY HH24:MI:SS'), 'some_value') 
+1

我需要通過數據時間值插入。你可以請插入查詢建議這個? – Shesha

+0

@Shesha同樣的電話只能在那裏應用。請參閱我編輯的答案。 – Mureinik

0

使用PostgreSQL,你可以使用Oracle的代碼,只需要to_timestamp而不是to_date

區別在於PostgreSQL中的date是一個實際日期而不是第二個精度的時間戳,就像它在Oracle中一樣。 因此,儘管您可以像上面那樣使用to_date,但結果不會有任何時間信息。

順便說一下,你的Oracle格式是錯誤的。您可能想要使用HH24而不是HH作爲「小時」部分。