日期和数字格式

Posted

技术标签:

【中文标题】日期和数字格式【英文标题】:Date and number formatting 【发布时间】:2014-10-23 17:10:59 【问题描述】:

我知道有一些日期/时间和数字格式的功能,但有没有办法以自定义格式存储和读取日期和数字列?

例如:

在我的国家 DD/MM/YYYY 是一种常见的日期格式,但如果我想将其存储在 mysqlpostgres 数据库中我必须将其存储为 YYYY-MM-DD

我已经阅读了 postgresql 中的一些配置指令,这些指令允许以特定格式存储日期/数字。

我认为在不需要转换例程的情况下存储和读取这些值会快得多。

【问题讨论】:

您实际使用的是什么 RDMS? MySQL 还是 PostgreSQL? 两者。它是我刚开始的一个多数据库项目...... 请在您的应用程序的外边缘处理此问题。如果您始终使用合理的 ISO 8601 格式与数据库对话,您将拥有更好的时间。时间和日期处理足够复杂,无需将模棱两可和特定于语言环境的格式混杂在一起。 "允许以特定格式存储日期/数字" - 日期确实具有“格式”。定义为DATE 的列以二进制方式存储日期值(例如,数值)。附有 NO “格式”。您为这些列看到的任何格式都由显示这些列中的数据的应用程序(例如 SQL 客户端)应用。将日期存储在定义为 DATE 的列中,并在应用程序中进行格式化(或使用 to_char() 在 SQL 语句中应用格式)。 【参考方案1】:

我强烈建议不要更改日期格式,但如果您想这样做,它是一个全局变量。这是 MySQL 的示例。

mysql> show global variables like '%date%';
+-----------------------------------------+-------------------+
| Variable_name                           | Value             |
+-----------------------------------------+-------------------+
| binlog_direct_non_transactional_updates | OFF               |
| date_format                             | %Y-%m-%d          |
| datetime_format                         | %Y-%m-%d %H:%i:%s |
| log_slave_updates                       | OFF               |
| low_priority_updates                    | OFF               |
| query_cache_wlock_invalidate            | OFF               |
| sql_safe_updates                        | OFF               |
+-----------------------------------------+-------------------+
7 rows in set (0.00 sec)

因此您需要将 date_format 和 datetime_format 设置为所需的格式。即

这是给服务器的

set global variable date_format = '%d-%m-%Y'; 
set global variable datetime_format = '%d-%m-%Y %H:%i:%s';

这是在客户端

set date_format = '%d-%m-%Y'; 
set datetime_format = '%d-%m-%Y %H:%i:%s';

【讨论】:

嗨。感谢您的回答。为什么你会说你“强烈推荐”改变这些变量? 我不希望每个开发人员都编写代码来检查其应用程序中的日期格式,因此如果您自己编写代码,那么如果您正在使用第三方应用程序,您可能会没事你可能会得到不想要的结果。坚持系统标准通常是最安全的。【参考方案2】:

也许这个链接会对你有所帮助:

How do I alter the date format in Postgres?

或者这个:

How to convert date strings to timestamp without knowing the date format

【讨论】:

以上是关于日期和数字格式的主要内容,如果未能解决你的问题,请参考以下文章

dd/mm/yyyy 是啥日期格式?

怎么把日期变为数字格式

为啥excel日期格式会变成数字

用于格式化和解析日期和数字的 JavaScript 库

excel中日期格式是数字,想转成java的日期格式,遇到了问题

Win7系统怎么更改日期,时间和数字格式