我必须在mysql数据库中使用varchar字段来存储日期,我需要能够在此日期查询,就像它是一个日期字段一样。
date()
?谢谢!
答案 0 :(得分:2)
正如我从您的评论中看到的那样,您正在使用wordpress,因此已经具有使用日期和您想要的格式的功能
在LINK下方使用get_option
并使用默认参数获取。像
<?php echo get_option( $option, $default ); ?>
其中$default = 'date_format' - Default date format; set in General Options.
让我知道我是否可以帮助你。
答案 1 :(得分: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'
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您只想查询数据,就好像是日期一样,您可以这样做......
SELECT * FROM table1 WHERE DATE_FORMAT(STR_TO_DATE(yourColumn,'%m/%d/%Y %x:%x:%x'), '%Y-%m-%d 23:59:59') >= NOW()
这将选择日期大于或等于今天的所有readocrds
答案 4 :(得分: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类型字段的测试表中。我做了同样的结果。