3

在我的应用程序中,我正在开发一种用于创建“提醒”的功能。

提醒具有日期和时间。在我的应用程序中,我有一个创建/编辑提醒的表单 - 它有两个单独的字段来输入此信息:

<input type="text" name="date"></input> <!-- datepicker plugin -->

<input type="text" name="time"></input> <!-- timepicker plugin -->

现在,作为一项规则,每当我需要存储日期/时间时,我总是使用 DATETIME 列,但是这是我第一次必须存储用户输入的日期/时间。

我认为最好有单独的 DATE 和 TIME 列,因为将数据插入/检索到我的应用程序会更容易。例如,我不必组合来自两个输入字段的值来创建单个值以插入到数据库中。同样,我不必将单个值拆分为两个值以在编辑模式下填充表单字段。

但另一方面,如果我使用一列,查询表会不会更容易?你怎么看?

4

6 回答 6

4

您应该自下而上构建(数据库在底部)。不要考虑应用程序,只考虑数据库。现在,在数据库级别上什么是有意义的。约会时间。

因此,您需要在应用程序级别编写额外的代码。

于 2012-08-16T22:56:59.593 回答
2

请看

将 Timepicker 添加到 jQuery UI Datepicker

http://trentrichardson.com/examples/timepicker/

根据您的mysql格式转换您的日期时间并存储它

$mydate = strtotime($_POST['date']);
$myfinaldate = date("d-m-y", $mydate);

$mytime = strtotime($_POST['time']);
$myfinaltime = date("H:i:s", $mytime);
于 2012-08-16T22:56:37.050 回答
0

如果您正在开发一个预约应用程序,并且一方面您需要知道为用户安排预约的日期和时间,另一方面,您需要将用户与医生的日程安排相匹配。您将医生的时间表保存在数据库中,并且您需要知道(除其他外)医生何时(在哪天)以及何时可用。让我们暂时忘记几天,首先关注时间安排……您需要制定一个可编程的时间表,以便如果您知道医生在特定日历年工作 6 个月。(Jan - Jun),他或她可能工作(9-5 M,W,Fr)和(10-3 T,Th)。周六和周日医生休息。因此,您开发了一个表格来保存每日时间表,其中包含 2 列来保存一周中每一天的每日开始时间和每日结束时间。总共 14 列和一个主键和可能的辅助键。所以现在是时候进行一些日期算术了(这是它变得毛茸茸的地方:-|...

你可以说我你的查询:(mySQL)

选择某某……

其中 form.theapptdatetimedoctorschedule_startime_tuesdaydoctorschedule_endime_tuesday

这将进行匹配以查看您的日期时间是否在您的医生计划开始时间和结束时间的日期范围内......但是如果您只需要时间怎么办?

如果时间值存储为日期时间,日期算术是否仍然有效???

换句话说,如果我有 01:00:00 作为我的医生计划开始时间,这是我的算术工作的合法日期值,还是将日期部分强加给我。

也许我应该将时间存储为 varchar,并将其转换为合适的日期时间值并在代码中执行算术而不是查询????

于 2014-03-10T20:37:16.747 回答
0

这不取决于您正在创建的系统。如果您想存储 2038 年以后的日期,我会将日期时间和时间分开存储。

于 2012-12-14T11:48:08.640 回答
0

分隔列是不合逻辑的。您可以使用时间戳作为数据类型,并且可以使用 mktime 函数轻松解析日期和时间。

于 2012-08-16T22:58:12.940 回答
0

我想到了一个关于何时划分日期和时间的例子:

您可能希望拥有DATE唯一索引的一部分,以便用户每个日期只允许向某个表添加 1 条记录,但您仍然想知道TIME他添加了它,因此您保留DATETIME分开。

于 2019-05-22T10:51:41.447 回答