PHP混合格式日期/时间 - 星期几和时间

时间:2012-11-12 22:27:58

标签: php mysql sql datetime

所以,我正在研究一个用于研讨会的PHP调度程序。基本上我有一份研讨会清单,每个研讨会在同一天同一时间每周开会一次,并且运行一定数周。

现在我的数据库中有pkey,开始日期,结束日期,研讨会名称以及代表日期和时间的字符串。

现在我有一个页面显示当前正在运行的所有研讨会,基于将今天的日期与所有研讨会的开始和结束日期进行比较。现在我希望它能够展示今天的研讨会。

我假设我需要将日程变量设为日期。 varchar字符串是一个dect tape fix,因为我甚至不知道从哪个部分开始。

如何格式化SQL变量以将日期和时间存储在[工作日] [时间]格式的DATE类型变量中?这可能吗?

修改

能理解我要求的人可以帮助我重新提出问题吗?似乎我无法做出我要求清楚的事情。

例如,假设MySQL研讨会是在周三晚上7点开始,从11月14日开始到12月26日结束。我将星期三晚上7点保存为VARCHAR字符串,并将StartDate和EndDate保存为日期。现在我列出目前正在进行的所有研讨会都没有问题,但我想仅通过与当前工作日相对应的那一天的那些会议来过滤那些研讨会。要做到这一点,我需要将'星期三晚上7点'变成DATE变量,同时仍然保持完全相同的格式以便在时间表上回显。

3 个答案:

答案 0 :(得分:2)

不鼓励将日期存储为字符串。 MySQL包含许多Date / Time functions。您应该将此数据存储为DateTime datatype并使用其中一个函数对其进行操作。

例如:

-- returns 1 for Monday
SELECT DATE_FORMAT(CURDATE(), '%w');

答案 1 :(得分:1)

MySQL的日期时间为'YYYY-MM-DD HH:MM:SS',日期格式为'YYYY-MM-DD'。

根据您希望如何存储它,您只需添加DATE列然后进行更新:

更新TABLE set datecolumn ='date_string_col';

只要您现在拥有的varchar col以适当的格式存储,否则,您必须将格式更改为指定的格式。

有关详细信息:http://dev.mysql.com/doc/refman/5.1/en/datetime.html

答案 2 :(得分:0)

由于此处没有人能够理解我的问题,我将自己回答。在与我认识的一些专业人士和教师交谈后(我没有理解我想要的东西......),我发现技术上不可能,但是解决方法是选择工作日的任意日期,并使用它作为替代品,然后始终以工作日格式呈现。