我目前有以下变量和格式化数据:
我需要将它们组合成一个'datetime'类型的变量'schedstart'来插入我的数据库,我完全迷失了。我试图研究这些问题,并找到了使用mktime()或sttodate()的建议,但我找不到任何可靠的语法指南。
如何使用PHP组合这些变量?
答案 0 :(得分:3)
您可以使用以下使用STR_TO_DATE()
和CONCAT()
功能的内容:
select
str_to_date(
concat(Scheduling_StartDate_Year,'-',
Scheduling_StartDate_Month, '-',
Scheduling_StartDate_Day, ' ',
Scheduling_StartTime), '%Y-%m-%d %h:%i') as yourDate
from yourtable
结果:
yourDate
2012-10-01 03:00:00
答案 1 :(得分:1)
您可以考虑在PHP上以适当的格式连接:
<?php
$dateString = $Scheduling_StartDate_Month."/".$Scheduling_StartDate_Day."/".$Scheduling_StartDate_Year." ".$Scheduling_StartTime;
$result = mysql_query("SELECT STR_TO_DATE('".$dateString."', '%m/%d/%Y %h:%i %p')");
?>
答案 2 :(得分:0)
我不知道为什么你想在SQL中做这个,这在PHP中很容易做到。
(通常最好在SQL服务器上施加尽可能小的压力,因为通常是瓶颈,加上,在SQL中使用CONCAT
拼凑起来更加丑陋
MySQL日期本质上只是以特定方式格式化的字符串。例如2008-12-31 23:59:59
因此,只需将您的不同日期片段放在一起,然后将它们放在一起,使它们看起来像那样,然后根据需要在SQL查询中使用它(将其放在单引号中)。
有关详细信息,请参阅MySQL docs。
最简单的方式可能如下所示:
$mysql_formatted_date = date('Y-m-d H:i:s', strtotime("Scheduling_StartDate_Year-$Scheduling_StartDate_Month-$Scheduling_StartDate_Day $Scheduling_StartTime"));
即,让strtotime
解析您的日期并处理将上午/下午转换为24小时的时间,然后使用date
将其强制为正确的格式。
mysql_query("SELECT '$mysql_formatted_date' ...");