2011-09-27 108 views
2

两个的DateField如何在mysql中显示两个日期之间的时间

<input type="text" name="from date" > 

<input type="text" name="to date" > 

例子:如果没有fromdate是2011-09-12和todate是2011-09-15

输出中应显示:

显示每隔一小时

2011-09-12 00:00:00 
2011-09-12 01:00:00 
2011-09-12 02:00:00 
2011-09-12 03:00:00 
2011-09-12 04:00:00 
. 
. 
. 
. 
. 
2011-09-15 23:00:00 

它可能在mysql代码或php

+0

此[链接](HTTP下列代码做到这一点。 php.net/manual/en/function.date-diff.php)可能对您有所帮助 – punit

+0

这是一个'php'的问题,并且该问题必须**不能**在数据库级别解决*。所以,回答没有关于'mysql'的一切。 – FallenAngel

回答

3

试试这个:// WWW:

<?php 
$from_date_time = strtotime($_POST['from_date']); 
$to_date_time = strtotime($_POST['to_date']); 

while ($from_date_time < $to_date_time) { 
    echo date('Y-m-d H:i:s', $from_date_time); 
    $from_date_time += 3600; 
} 
+0

是的,很好的解决方案。 – Atticus

+0

@Debiprasad:非常感谢。如果我们删除strtotime意味着它不工作,它正在工作fine.one问题.strtotime的主要用途是什么 –

+0

@ user966460它将任何英文文本日期时间描述解析为Unix时间戳。请检查这个PHP手册[strtotime](http://php.net/manual/en/function.strtotime.php) – Debiprasad

0

打招呼MS SQL Server 2005中您可以通过使用CTE ..

declare @dateh table(ind int identity(1,1),date1 smalldatetime,date2 smalldatetime) 

insert into @dateh select '1/1/2011','1/2/2011' 

select * from @dateh 

;with T as 
(
    select date1,date2 from @dateh as d 
    union all 
    select dateadd(hh,1,date1),date2 From T 
    where dateadd(hh,1,date1)<= date2 
) 
Select date1 from T 
相关问题