寻找一些好的示例

前几天在 #maria IRC 频道中,有人问了我一个关于DATETIME列的问题,他们想通过年份来SELECT筛选。答案(对你们许多人来说可能很明显)是使用YEAR()函数,如下所示

select * from t1 where YEAR(d) = 2011;

(以上假设表名为“t1”,并且DATETIME列名为“d”。)

在我的回复中,我提供了 AskMonty 知识库中日期和时间函数部分的链接,但是当我查看YEAR()函数的条目时,我注意到给出的示例(源自文件scripts/fill_help_tables.sql它位于 MySQL 和 MariaDB 源代码中)帮助不大

MariaDB [(none)]> SELECT YEAR('1987-01-01');
+--------------------+
| YEAR('1987-01-01') |
+--------------------+
|               1987 |
+--------------------+
1 row in set (0.00 sec)

MariaDB [(none)]>

以上当然是YEAR()函数的有效用法,但它不是实际应用中的用法(至少,我不知道为什么有人会在实际应用程序中使用以上SELECT语句)。因此我添加了一个我认为更有用的示例,特别是对于不熟悉使用 SQL 函数的人来说

CREATE TABLE t1 (d DATETIME);
INSERT INTO t1 VALUES
    ("2007-01-30 21:31:07"),
    ("1983-10-15 06:42:51"),
    ("2011-04-21 12:34:56"),
    ("2011-10-30 06:31:41"),
    ("2011-01-30 14:03:25"),
    ("2004-10-07 11:19:34");
MariaDB [test]> select * from t1;
+---------------------+
| d                   |
+---------------------+
| 2007-01-30 21:31:07 |
| 1983-10-15 06:42:51 |
| 2011-04-21 12:34:56 |
| 2011-10-30 06:31:41 |
| 2011-01-30 14:03:25 |
| 2004-10-07 11:19:34 |
+---------------------+
6 rows in set (0.02 sec)

MariaDB [test]> select * from t1 where YEAR(d) = 2011;
+---------------------+
| d                   |
+---------------------+
| 2011-04-21 12:34:56 |
| 2011-10-30 06:31:41 |
| 2011-01-30 14:03:25 |
+---------------------+
3 rows in set (0.09 sec)

查看日期和时间函数部分以及其他地方的其他函数条目时,发现示例的模式是很有用,但是——就像最初的YEAR()示例一样——在现实世界中却毫无用处。

我现在已经为几个日期和时间函数添加了更好的示例,但它们可能还可以进一步改进,知识库中还有更多条目也可以从更好的示例中受益。 好消息是向知识库条目添加示例非常容易。坏消息是,如果我独自思考所有示例,它们会很相似并且可能很无聊,因此我想寻求一些帮助。

如果您曾经想为 MariaDB 贡献力量,但不知道从何开始,我有一个建议:查看 AskMonty 知识库的函数和运算符部分,找到一个或两个需要更好示例的函数,然后添加一些示例(可以直接添加或通过评论添加)。如果您不熟悉编辑知识库,请不用担心。我可以在事后整理并让您的示例看起来很漂亮。只需确保您那些超棒的新示例确实有效即可。 🙂

谢谢!

由 MariaDB Foundation 发布

Daniel Bartholomew 是 MariaDB 的发布经理。他撰写了两本与 MariaDB 相关的书:《MariaDB 入门》(现已出版第二版)和《MariaDB Cookbook》,两本书均由 Packt 出版。