更改格式日期MySql

我在MySql中有日期类型列。默认情况下为 MySql日期格式为YYYY/MM/DD。 但实际上我更喜欢使用DD/MM/YYYY格式。更改格式日期MySql

我可以更改列日期格式吗?

回答:

尝试echo date('d/m/Y', strtotime($date));

这将带您现有的日期,将其转换为UNIX时间和您所需的格式转换回一个日期。

回答:

不,您不能更改DATE,DATETIME或TIMESTAMP列的默认MySQL格式。

但是,您可以在SQL语句中使用MySQL函数以不同格式输出DATE表达式作为字符串。

DATE_FORMAT(datecol , '%m/%d/%Y') AS datecol 

(这将在SELECT列表做工精细,但避免任何谓词使用这个(即WHERE子句)。在那里,你将要引用的裸柱,和转换您的首选格式“的字符串MM/DD/YYYY”使用STR_TO_DATE功能,如

datecol >= STR_TO_DATE('07/16/2012','%m/%d/%Y') 


虽这么说,我觉得你真的会使用MySQL的默认日期格式与数据库的交互得到更好的服务,并处理格式你的代码有变化。

回答:

其他DBMS具有可以更改的默认格式,即使在会话基础上也是如此。例如,在Oracle中,您可以简单地更改NLS_DATE_FORMAT会话变量,Oracle将使用您的自定义格式输入和输出。 MySQL不。

是有一对夫妇的server variables(date_formatdatetime_format),您可以动心考虑适合于这个目的:

mysql> SHOW VARIABLES LIKE 'date%_format'; 

+-----------------+-------------------+

| Variable_name | Value |

+-----------------+-------------------+

| date_format | %Y-%m-%d |

| datetime_format | %Y-%m-%d %H:%i:%s |

+-----------------+-------------------+

首先,它们是服务器端,他们是不是动态(它们不能在运行时设置)。但更糟的是,他们从来没有实际使用过。这些变量从未影响日期格式。目前它们已被弃用并排队删除。

总结:不,你不能。 日期格式已修复。

回答:

正如其他人已经解释说,这是不可能的,但这是另一种解决方案,它需要一点调整,但它的工作方式像日期列。

我开始思考,我怎样才能使格式化成为可能。我有一个想法。如何为它启动触发器?我的意思是,添加类型为char的列,然后使用MySQL触发器更新该列。这工作!我做了相关的触发一些研究,最后拿出这些查询:

CREATE TRIGGER timestampper BEFORE INSERT ON table 

FOR EACH

ROW SET NEW.timestamp = DATE_FORMAT(NOW(), '%d/%m/%Y');

CREATE TRIGGER timestampper2 BEFORE UPDATE ON table 

FOR EACH

ROW SET NEW.timestamp = DATE_FORMAT(NOW(), '%d/%m/%Y');

不能使用TIMESTAMPDATE作为列类型,因为这些都有自己的格式,和他们自动更新。

所以,这是您的替代时间戳或日期替代!希望这会有所帮助,至少我很高兴我能做到这一点。

以上是 更改格式日期MySql 的全部内容, 来源链接: utcz.com/qa/260472.html

回到顶部