我有这个查询工作在一个捏,但它需要更好。我正在学习sqlsrv,并且正在努力解决时间问题。在sql server语句中添加时间变量组
基本上我需要拉所有独特的到来(这是schtm +持续时间),并显示每小时期望有多少。有人能指引我朝着正确的方向吗?
此查询显示每个独特的时间像5:30,5:45,6:00,6:15等我需要它按小时分组,因此它会显示5 - 6 - 7 - 8等在它下面的计数。
<?PHP
$currentdate = date('mdy');
$this_time = date ("D, M j, Y H:i");
$current_date = date('n-d-y');
$this_time = date ("M j, Y H:i");
echo"<table width=\"100%\" border=\"1\"><tr>";
$sql = "SELECT DISTINCT cast(cast(SCHTM as datetime)+cast(DURATION as datetime) as time) as Arrivals FROM admissions.patientinfo WHERE SCHDT ='$currentdate' GROUP BY cast(cast(SCHTM as datetime)+cast(DURATION as datetime) as time)";
$stmt = sqlsrv_query($conn, $sql);
while($row = sqlsrv_fetch_array($stmt , SQLSRV_FETCH_ASSOC)) {
$Arrivals=$row['Arrivals']->format('H:i');
echo"<td align=\"center\">$Arrivals ";
$sql = "SELECT DISTINCT PATNUM as Count FROM admissions.patientinfo WHERE SCHDT ='$currentdate' AND cast(cast(SCHTM as datetime)+cast(DURATION as datetime) as time) = '$Arrivals:00' ";
$query = sqlsrv_query($conn, $sql, array(), array("Scrollable" => 'static'));
$row_count = sqlsrv_num_rows($query);
echo"<br />$row_count</td>";
}
echo"</tr></table>"
?>
SCHTM和DURATION是否不作为日期时间存储?这里需要铸造什么? – Simon
他们都是时间(0)字段。铸造是我能够实现它的唯一方法。 –