Mostrando las entradas con la etiqueta MySQL. Mostrar todas las entradas
Mostrando las entradas con la etiqueta MySQL. Mostrar todas las entradas

20 de septiembre de 2008

Convertir Segundos a Dias,Horas,Minutos y Segundos

Hace algunos días haciendo un sistemita de publicación de noticias se me ocurrió agregarle una característica interesante para que dijera algo así parecido: Esta noticia fue publicada hace 5 días 4 horas 3 minutos 4 segundos.

Bueno pensando en ello nació el siguiente código, que lo consigue, pasando como parámetro únicamente el numero de segundos transcurridos entre la fecha de publicación de la noticia y la fecha actual, acá pego un ejemplo de como obtener eso en SQL:

SQL:


SELECT (UNIX_TIMESTAMP( NOW( ) )
- UNIX_TIMESTAMP( fecha )) AS input_seconds FROM noticias


Y, por supuesto, la función que lo calcula a continuación:


function human_time($input_seconds) {

    $days = "";$hours = "";$minutes = "";$seconds = "";

    $days=floor($input_seconds / 86400);

    $remainder=floor($input_seconds % 86400);

    $hours=floor($remainder / 3600);

    $remainder=floor($remainder % 3600);

    $minutes=floor($remainder / 60);

    $seconds=floor($remainder % 60);



    if ($days>0) $days = "$days dias ";

    if ($hours>0) $hours = "$hours hrs ";

    if ($minutes>0) $minutes = "$minutes min ";

    if ($seconds>0) $seconds = "$seconds seg ";

return $days.$hours.$minutes.$seconds;

}

13 de marzo de 2008

Convertir CSV a MySQL

Simplemente se ejecuta el siguiente querry:


load data local infile '/usr/my_path/personas.csv' into table 'Mi_DB'.'personas'

fields terminated by ',' lines terminated by '\n' (id,nombre,descripcion,otros);


Recuerda que debes tener una base de datos llamada Mi_DB, en donde existe una tabla personas con los campos id,nombre,descripcion y otros. Ah y claro tu archivo CSV que en este caso está en /usr/my_path/ y se llama Mi_DB.csv.Si –local-infile está deshabilitado en el servidor Web, nos mostrará un mensaje como este:

ERROR 1148: The used command is not allowed with this MySQL version

Así que lo más conveniente sería intentarlo con PHP, el asunto sería algo diferente, y aquí les coloco el código, que se que es lo que les interesa:

//Registrar la tabla full
function csv2sql($fileName)
{
$file = file ($fileName);
$import_sql = "INSERT INTO cierrediariostb VALUES";
$coma =",";
for($i=0; $i$line = trim($file[$i]);
$array = explode(",", $line);

for($counter = 0; $counter <>($array); $counter++)
$array[$counter] = colum2type($array[$counter]);

if ($i==(sizeof($file)-1))
$coma ="";

$import_sql .= "(".
implode(",", $array) .")".$coma;
}
return $import_sql;
}

//Averiguar el tipo de dato
function colum2type($data)
{
$data = trim(str_replace("\"","",$data));
if (is_numeric($data))
return $data;
else
return "'".$data."'";
}