0

我必须在 mysql 数据库中使用 varchar 字段来存储日期,并且稍后我需要能够查询这个日期,就好像它是一个日期字段一样。

  1. 日期应该以什么格式进入数据库?date()?
  2. 如何在mysql中将字符串转换为日期?

谢谢!

4

5 回答 5

2

正如我从您的评论中看到的那样,您正在使用 wordpress,因此它已经具有使用日期和您想要的格式的功能

使用下面的LINKget_option获取默认参数。喜欢

<?php echo get_option( $option, $default ); ?> 

在哪里$default = 'date_format' - Default date format; set in General Options.

让我知道我是否可以帮助你更多。

于 2013-06-18T05:03:49.673 回答
1

MySQL提供DATETIME数据类型。但是CHAR还是VARCHAR应该没问题,这取决于您的需要。

对于格式,这是wiki的标准格式。YYYY-MM-DD HH:MM:SS,仅适用于日期,应该这样做:YYYY-MM-DD.

另请查看STR_TO_DATE函数。

这是一个例子:

SELECT STR_TO_DATE('01,5,2013','%d,%m,%Y')

将返回一个日期

'2013-05-01'

于 2013-06-18T04:53:35.927 回答
0

在我看来没有问题。如果您想将日期存储为 varchar,也可以。如果您以后喜欢使用带有日期功能的数据,也可以。不同之处仅在于 MySQL 存储数据的方式。如果使用 varchar 存储日期,则需要更多内存,但也可以存储其他字符串。你可以自己试试:

mysql> SELECT YEAR("2013-06-18");
+--------------------+
| YEAR("2013-06-18") |
+--------------------+
|               2013 |
+--------------------+
1 row in set (0,00 sec)

您甚至可以将字符串与日期进行比较,如下所示:

mysql> SELECT DATE(NOW())="2013-06-18";
+--------------------------+
| DATE(NOW())="2013-06-18" |
+--------------------------+
|                        1 |
+--------------------------+
1 row in set (0,00 sec)

如果您不信任此测试,您可以先将数据放入一个带有 varchar 类型字段的测试表中。我做了同样的结果。

于 2013-06-18T15:45:38.710 回答
0

请阅读文档

http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html

STR_TO_DATE()

于 2013-06-18T04:55:08.503 回答
0

如果你只是想查询数据,就好像它是一个日期,你可以这样做......

  SELECT * FROM table1 WHERE DATE_FORMAT(STR_TO_DATE(yourColumn,'%m/%d/%Y %x:%x:%x'), '%Y-%m-%d 23:59:59') >= NOW()

这将选择日期大于或等于今天的所有 readocrd

于 2013-06-18T04:56:07.657 回答