当前位置:  开发笔记 > 数据库 > 正文

Postgresql的string.Format(“ {0:s}”,DateTime.Now)等价的是什么?

如何解决《Postgresql的string.Format(“{0:s}”,DateTime.Now)等价的是什么?》经验,为你挑选了1个好方法。

PostgreSQL中可排序的datetime / timestamp varchar等效于什么?

Console.WriteLine("{0:s}", DateTime.Now);

样本格式输出:

2000-05-04T15:30:59

这可以工作,现在选择SELECT :: varchar,输出为'2009-03-25',但仅适用于日期类型,想知道时间戳等效于什么。

注意,我知道日期本身是可排序的,我只是遇到.NET和Mono之间的DateTime不兼容,所以我只是将日期/时间戳类型作为varchar传输(远程),底层数据库类型仍然是正确的日期/时间戳字段类型。对于那些遇到相同问题的人,解决方法是在检索数据时将日期转换为varchar,并在保存时将varchar转换为最新。



1> 小智..:

基本上,您只使用to_char函数。

您的示例的问题是,尽管从理论上讲这应该可行:

select to_char( now(), 'YYYY-MM-DDTHH24:MI:SS' );

实际上-PostgreSQL无法“理解” T是分隔符,而HH24是下一个“标签”,并将其打印为:

2009-03-24THH24:32:45

但是您可以相对简单地将其更改为:

select translate( to_char( now(), 'YYYY-MM-DD HH24:MI:SS' ), ' ', 'T' );

输出要求的格式:

2009-03-24T21:33:21

当然,记住总是要使用翻译会很快变老,因此您可以创建自己的函数并使用它:

create function custom_ts(timestamptz) returns text as $$
  select translate( to_char( $1, 'YYYY-MM-DD HH24:MI:SS' ), ' ', 'T' );
$$ language sql;
# select custom_ts(now());
      custom_ts
---------------------
 2009-03-24T21:35:47
(1 row)

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有