Ciao buona giornata ho questi 4 dischi come vedi sotto.
-----fecha---
2018/03/01 0:05
2018/03/01 0:15
2018/03/01 0:20
--------------
Sono registrati in mysql con il loro rispettivo id.
cosa voglio fare da mysql se c'è un metodo o qualcosa che mi mostri i record che non corrispondono
Ad esempio, ho diversi record, questi record vanno da 5 minuti a 5 minuti come si vede nella tabella, quello che voglio fare è che mysql mi mostra il record che non c'è, per esempio, non è il
2018/03/01 0:10 e questo lo dimostra
Apprezzo il vostro aiuto.
risposte:
0 per risposta № 1Dovresti correggere 0:
in quanto non è un valore orario valido.
Puoi farlo come segue usando DateTime, ma la tua necessità di definire i valori di inizio e fine, presumo che tu stia facendo ciò selezionando i tuoi dati "fecha".
<?php
// query this in a select
$result = [
"2018/04/12 00:05",
"2018/04/12 00:15",
"2018/04/12 00:20",
];
// define start/end by first and last items in array
$begin = DateTime::createFromFormat("Y/m/d H:i", min($result));
$end = DateTime::createFromFormat("Y/m/d H:i", max($result));
$interval = new DateInterval("PT5M"); // plus time 5 min
$daterange = new DatePeriod($begin, $interval ,$end);
// build an array to compare it with
foreach ($daterange as $date){
$range[] = $date->format("Y/m/d H:i");
}
// array diff out the differences
print_r(array_diff($range, $result))
?>
Risultato:
Array
(
[1] => 2018/04/12 00:10
)