gpt4 book ai didi

mysql - 当某些记录有月/日/年而其他记录只有年份时如何存储日期?

转载 作者:行者123 更新时间:2023-11-29 07:39:34 26 4
gpt4 key购买 nike

我很难决定如何在我的专辑数据库中存储发行日期。有些专辑有月、日和年,但其他专辑只有年份。如果我想显示这两种格式,如何存储这些发布日期?我注意到 allmusic.com 就是这样做的。我的同事告诉我,他认为他们将月、日和年作为单独的字段存储在数据库中,但我想这会让按时间顺序排列专辑变得困难。关于如何完成此操作有什么建议吗?

我正在使用 MySQL,但我将此作为有关关系数据库设计的一般问题来问。

最佳答案

我将使用 DATE 类型存储日期并使用精度列。

SQL Fiddle

MySQL 架构:

CREATE TABLE Album(
Title VARCHAR(40),
ReleaseDate DATE,
ReleaseDateAccuracy ENUM('D', 'M', 'Y')
);

INSERT INTO Album
(Title, ReleaseDate, ReleaseDateAccuracy)
VALUES
('Foo', '2015-01-01', 'Y'),
('Bar', '2015-04-01', 'M'),
('Baz', '2015-04-06', 'D');

查询:

SELECT Title,
CASE ReleaseDateAccuracy
WHEN 'Y' THEN DATE_FORMAT(ReleaseDate, '%Y')
WHEN 'M' THEN DATE_FORMAT(ReleaseDate, '%Y-%m')
WHEN 'D' THEN DATE_FORMAT(ReleaseDate, '%Y-%m-%d')
END AS FormattedDate
FROM Album

结果:

| Title | FormattedDate |
|-------|---------------|
| Foo | 2015 |
| Bar | 2015-04 |
| Baz | 2015-04-06 |

关于mysql - 当某些记录有月/日/年而其他记录只有年份时如何存储日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29455673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com