2011-09-27 5 views
2

Deux datefieldComment afficher heures entre deux dates dans MySQL

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

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

Exemple: Si fromdate est 2011-09-12 et todate est 2011-09-15

ouput doit afficher:

affichage toutes les heures

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 

il est possible dans le code mysql ou php

+0

ce [lien] (http: // www. php.net/manual/fr/function.date-diff.php) peut être utile pour vous – punit

+0

C'est une question 'php' et le problème ne doit pas être résolu ** au niveau de base de données *. Donc, la réponse n'a rien à propos de mysql. – FallenAngel

Répondre

3

Essayez ceci:

<?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

Oui, bonne solution. – Atticus

+0

@Debiprasad: Merci beaucoup.Il fonctionne très bien.une question si nous supprimons strtotime signifie, il ne fonctionne pas. Quelle est l'utilisation principale de la strtotime –

+0

@ user966460 Il analyse à propos de toute description datetime textuelle anglaise dans un horodatage Unix. Merci de vérifier ceci sur PHP Manual [strtotime] (http://php.net/manual/fr/function.strtotime.php) – Debiprasad

0

bonjour dans le serveur MS SQL 2005, vous pouvez le faire par le code suivant de l'utilisation 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 
Questions connexes