0

所以,我正在为研讨会开发一个 PHP 调度程序。基本上我有一个研讨会列表,每个研讨会每周在同一天的同一时间开会一次,并运行固定的周数。

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

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

我假设我需要将日程表变量设为 DATE。varchar 字符串是一个 dect 磁带修复,因为我什至不知道从哪里开始这部分。

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

编辑

能理解我在问什么的人可以帮我改写我的问题吗?似乎我无法明确我的要求。

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

4

3 回答 3

2

不鼓励将日期存储为字符串。MySQL 包括许多日期/时间函数。您应该将此数据存储为DateTime 数据类型并使用这些函数之一对其进行操作。

例如:

-- returns 1 for Monday
SELECT DATE_FORMAT(CURDATE(), '%w');
于 2012-11-12T22:32:40.253 回答
1

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

根据您要如何存储它,您可以添加 DATE 列,然后进行更新:

更新表设置 datecolumn = 'date_string_col';

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

欲了解更多信息:http ://dev.mysql.com/doc/refman/5.1/en/datetime.html

于 2012-11-12T22:33:24.837 回答
0

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

于 2012-11-28T21:38:34.793 回答