要将datetime转换为SQL Server CE,我使用以下格式
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 中转换相同内容?
注意:我正在使用timestamp
数据类型
答案 0 :(得分: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 :(得分:0)
使用PostgreSQL,您可以使用Oracle中的代码,只需使用to_timestamp
代替to_date
。
不同之处在于,PostgreSQL中的date
是真正的日期,而不是像Oracle中那样具有第二精度的时间戳。
因此,虽然您可以像上面那样使用to_date
,但结果将没有任何时间信息。
顺便说一下,你的Oracle格式是错误的。您可能希望使用HH24
而不是HH
作为“小时”部分。
答案 2 :(得分:0)
如果您想使用一种非常简单的方法,也可以使用以下方法:
var date = $"'{new NpgsqlDateTime(DateTime.UtcNow)}'";