Mysql:创建表时将DATETIME的格式设置为'DD-MM-YYYY HH:MM:SS'

Posted

技术标签:

【中文标题】Mysql:创建表时将DATETIME的格式设置为\'DD-MM-YYYY HH:MM:SS\'【英文标题】:Mysql: Setup the format of DATETIME to 'DD-MM-YYYY HH:MM:SS' when creating a tableMysql:创建表时将DATETIME的格式设置为'DD-MM-YYYY HH:MM:SS' 【发布时间】:2012-01-10 09:39:26 【问题描述】:

在谷歌搜索之后,我找不到创建一个新表的方法,该表的默认格式设置为“DATETIME”列,默认格式设置为“DD-MM-YYYY HH:MM:SS

我在phpmyadmin 看到了一个教程,所以我怀疑我可以通过命令行使用 mysql 并在使用

创建新表时实现同样的事情
CREATE TABLE ()

提前谢谢你

【问题讨论】:

我不认为在创建表格时可以更改格式 【参考方案1】:

“MySQL 以 'YYYY-MM-DD HH:MM:SS' 格式检索和显示 DATETIME 值。” 这是来自 mysql 网站。您只能存储此类型,但您可以在需要显示时使用众多时间格式函数之一来更改它。

Mysql Time and Date functions

例如,其中一个函数是DATE_FORMAT,可以这样使用:

SELECT DATE_FORMAT(column_name, '%m/%d/%Y %H:%i') FROM tablename

【讨论】:

要使用 PHP 的 date() 函数获取当前日期时间,请使用 date("Y-m-d H:i:s")【参考方案2】:

使用 DATE_FORMAT 函数更改格式。

SELECT DATE_FORMAT(CURDATE(), '%d/%m/%Y')

SELECT DATE_FORMAT(column_name, '%d/%m/%Y') FROM tablename

更多详情请参考DOC

【讨论】:

【参考方案3】:

正如其他人所解释的那样,这是不可能的,但这里有一个替代解决方案,它需要进行一些调整,但它的工作方式类似于 datetime 列。

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

CREATE TRIGGER timestampper BEFORE INSERT ON table
FOR EACH
ROW SET NEW.timestamp = DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s');
CREATE TRIGGER timestampper BEFORE UPDATE ON table
FOR EACH
ROW SET NEW.timestamp = DATE_FORMAT(NOW(), '%d-%m-%Y %H:%i:%s');

您不能将TIMESTAMPDATETIME 用作列类型,因为它们有自己的格式,并且会自动更新。

所以,这是您的替代时间戳或日期时间替代方案!希望这会有所帮助,至少我很高兴我得到了这个工作。

【讨论】:

这个想法真是太棒了!但是,如果您要从文件中插入值怎么办?我的意思是这将如何处理LOAD DATA INFILE 查询?【参考方案4】:

我使用了以下代码行,它工作正常谢谢.... @Mithun Sasidharan **

SELECT DATE_FORMAT(column_name, '%d/%m/%Y') FROM tablename

**

【讨论】:

【参考方案5】:

我很确定您不能更改 mysql 中的日期时间格式。 phpmyadmin 设置可能在读取日期时间时应用自定义格式(使用 DATE_FORMAT 或来自 php 的内容)。数据库使用什么格式无关紧要,应用程序中的格式可以根据需要显示。

日期格式化是一项非常常见的任务。我通常喜欢将其抽象为国际化代码,或者,如果您不需要处理 i18n,则将其抽象为通用日期实用程序库。它有助于使事情保持一致并使以后更容易更改(或添加 i18n 支持)。

【讨论】:

谢谢你的回答,我读到了 DATE_FORMAT 函数作为获取我想要的格式的一种方式。【参考方案6】:

不,你不能; datetime 将仅在创建表时以默认格式存储,然后您可以使用 Mysql Date Time Functions 以您想要的方式更改 select 查询中的显示格式

【讨论】:

【参考方案7】:

这不能为桌子做;此外,您甚至根本无法更改此默认值。

答案是一个服务器变量datetime_format,它没有被使用。

【讨论】:

【参考方案8】:
Dim x as date 

x = dr("appdate")
appdate = x.tostring("dd/MM/yyyy")

dr是datareader的变量

【讨论】:

【参考方案9】:

试试这个:

DATE NOT NULL FORMAT 'YYYY-MM-DD'

【讨论】:

以上是关于Mysql:创建表时将DATETIME的格式设置为'DD-MM-YYYY HH:MM:SS'的主要内容,如果未能解决你的问题,请参考以下文章

mysql 中,创建表时如何定义一个日期类型的字段

在 Postgres 中创建表时将空列设置为带时区的时间戳

mysql怎么在创建表时设置默认时间为系统时间

mysql建表时怎样设置datetime类型的字段默认值为不自动更新的系统当前时间

EF6 在更新时将 DateTime 设置为 Null

mysql中怎么设置某字段为当前时间