Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 创建表时使用SQL dateformat_Mysql_Sql_Create Table - Fatal编程技术网

Mysql 创建表时使用SQL dateformat

Mysql 创建表时使用SQL dateformat,mysql,sql,create-table,Mysql,Sql,Create Table,我正在尝试创建一个自定义日期格式的SQL表 CREATE TABLE Basketbal.Bestuurslid ( `lidnummer` INT NOT NULL, `begin_datum` DATE NOT NULL, `eind_datum` DATE NULL, `functie` VARCHAR(45) NULL, PRIMARY KEY (`lidnummer`, `begin_datum`)); (I know it's in dutch) 我正在尝试以以下格式创建开始数据&

我正在尝试创建一个自定义日期格式的SQL表

CREATE TABLE Basketbal.Bestuurslid (
`lidnummer` INT NOT NULL,
`begin_datum` DATE NOT NULL,
`eind_datum` DATE NULL,
`functie` VARCHAR(45) NULL,
PRIMARY KEY (`lidnummer`, `begin_datum`));
(I know it's in dutch)
我正在尝试以以下格式创建
开始数据
&
结束数据
2007年1月1日(“%e-%b-%y”)

但是我不能让它工作


有什么建议吗?

date
是数据库中的一种内部格式。您可以使用
date\u format()
(和
str\u to\u date()
)将其转换为(或从)字符串。它控制值的字符表示,而不是值本身。因此,当您从表中选择时:

select date_format(begin_datum, '%e-%b-%y')

如果您确实强烈希望不显式调用此函数,则可以将日期逻辑放入视图中,并通过视图访问表。

将数据存储在表中后,您可以按需要的格式提取数据,例如:

CONVERT(VARCHAR(11),begin_datum,6)

谢谢你的支持。我解决了这个问题,没有使用日期格式,只使用VARCHAR()

亲切问候,


Chiel

通常情况下,您会让数据库担心它存储的格式,而不是在选择数据后将其转换为您想要的格式(这也可以在select本身中完成:)我将在未来向您提出另一个问题,关于如何将2007年1月1日的
1
转换为日期类型。您应该将日期存储为数据库中的日期。格式化可以应用在客户端应用程序上。转换看起来像MySQL,所以我添加了标签。慢拍。那么,您已经决定不再使用数据类型了?毕竟,您将日期存储为字符串,为什么不将数字也存储为字符串呢?我们通常使用数据类型,以防止出错。现在是什么阻止某人在本专栏中存储
2015年2月29日
?(请注意,奇怪的是,从来没有人问过如何以奇怪的方式将数字存储在数据库中——他们承认数字只是数字,任何你想用数字进行的格式化以后都可以很容易地完成——然而人们总是问如何用相关的格式存储日期。奇怪的是)我没有想到这一点,但你完全正确。我将把它们存储为普通日期,就像@Gordon Linoff所说的,在读取数据库时使用“选择日期格式”。我测试了这个,它似乎有效。感谢您的错误提示:)