更改格式日期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_format
和datetime_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');
不能使用TIMESTAMP
或DATE
作为列类型,因为这些都有自己的格式,和他们自动更新。
所以,这是您的替代时间戳或日期替代!希望这会有所帮助,至少我很高兴我能做到这一点。
以上是 更改格式日期MySql 的全部内容, 来源链接: utcz.com/qa/260472.html