【问题标题】:Convert date time into specified format in PostgreSQL query在 PostgreSQL 查询中将日期时间转换为指定格式
【发布时间】:2016-06-27 06:53:12
【问题描述】:

为了将日期时间转换为 SQL Server CE,我使用以下格式

var date = "CONVERT(datetime,'" + 
((DateTime) DateTime.UtcNow).ToString("yyyyMMdd HH:mm:ss tt", new CultureInfo("en-us")) 
+ "',112)";

对于甲骨文:

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 数据类型

【问题讨论】:

标签: c# sql postgresql datetime date-formatting


【解决方案1】:

您可以使用to_char 函数来格式化时间戳:

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

编辑:
要回答 cmets 中的问题,可以在 insert 语句中应用相同的调用:

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

【讨论】:

  • 我需要通过数据时间值插入。你能在插入查询中提出这个建议吗?
  • @Shesha 可以在此处应用相同的调用。例如,请参阅我编辑的答案。
【解决方案2】:

如果你想要一个非常简单的方法,你也可以使用这个:

var date = $"'{new NpgsqlDateTime(DateTime.UtcNow)}'";

【讨论】:

    【解决方案3】:

    使用 PostgreSQL,您可以使用 Oracle 的代码,只需使用 to_timestamp 而不是 to_date

    不同之处在于 PostgreSQL 中的date是一个真实日期,而不是像 Oracle 中那样具有秒精度的时间戳。 所以虽然你可以像上面那样使用to_date,但结果不会有任何时间信息。

    顺便说一句,您的 Oracle 格式是错误的。您可能希望在“小时”部分使用 HH24 而不是 HH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多