2016-06-27 4 views
1

Для преобразования DateTime в SQL 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') 

EDIT:
Чтобы ответить на этот вопрос в комментариях, один и тот же вызов может быть применено в заявлении 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.

Разница заключается в том, что date в PostgreSQL является действительным датой, а не временной меткой со второй точностью, как в Oracle. Так что, пока вы можете использовать to_date, как вы это делаете, результат не будет иметь никакой информации о времени.

К сожалению, формат Oracle неправильный. Вероятно, вы хотите использовать HH24, а не HH для части «час».

Смежные вопросы