C# 在PostgreSQL查询中将日期时间转换为指定格式
为了将datetime转换为SQLServerCE,我使用以下格式C# 在PostgreSQL查询中将日期时间转换为指定格式,c#,sql,postgresql,datetime,date-formatting,C#,Sql,Postgresql,Datetime,Date Formatting,为了将datetime转换为SQLServerCE,我使用以下格式 var date = "CONVERT(datetime,'" + ((DateTime) DateTime.UtcNow).ToString("yyyyMMdd HH:mm:ss tt", new CultureInfo("en-us")) + "',112)"; 对于Oracle: var date = "TO_DATE('" + ((DateTime)DateTime.UtcNow).ToString("MMddy
var date = "CONVERT(datetime,'" +
((DateTime) DateTime.UtcNow).ToString("yyyyMMdd HH:mm:ss tt", new CultureInfo("en-us"))
+ "',112)";
对于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中转换相同的内容
注意:我正在使用
时间戳
数据类型您可以使用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')
使用PostgreSQL,您可以使用Oracle的代码,只需将
转换为\u时间戳
,而不是转换为\u日期
不同之处在于,PostgreSQL中的date
是一个真实的日期,而不是像Oracle中那样具有二次精度的时间戳。
因此,虽然您可以像上面那样使用来确定日期
,但结果将没有任何时间信息
顺便说一下,您的Oracle格式是错误的。对于“小时”部分,您可能希望使用
HH24
而不是HH
。如果您想要一个非常简单的方法,您也可以使用以下方法:
var date = $"'{new NpgsqlDateTime(DateTime.UtcNow)}'";
我需要通过数据时间值插入。你能在insert查询中提出这个建议吗?@Shesha同样的调用也可以在那里应用。例如,请参见我编辑的答案。和