¿Qué es la marca de tiempo de MySQL?
1. Convertir hora a marca de tiempo
[sql] ¿ver Plaincopyprint?
seleccione unix_timestamp('2009-10-26 10-06-07' )
Si el parámetro está vacío, el procesamiento es la hora actual
2. ¿Convertir la marca de tiempo a hora
[sql] ver Plaincopyprint?
select from_unixtime(1256540102)
La marca de tiempo generada por algunas aplicaciones tiene tres dígitos más que este, que se expresa en milisegundos. Si desea convertir, primero debe eliminar los últimos tres dígitos, de lo contrario. Se devolverá NULL p>
UNIX_TIMESTAMP(fecha)
Si se llama sin argumentos, devuelve una marca de tiempo Unix (número de segundos desde '1970-01-01 00:00:00' GMT) . Si se llama a UNIX_TIMESTAMP() con un parámetro de fecha, devuelve el número de segundos desde '1970-01-01 00:00:00' GMT. la fecha puede ser una cadena DATE, una cadena DATETIME, una TIMESTAMP o un número en hora local en formato AAAAMMDD o AAAAMMDD.
[sql] ver Plaincopyprint?
mysqlgt; seleccione UNIX_TIMESTAMP();
-gt; '1997-10-04 22:23:00');
-gt; 875996580
Cuando se usa UNIX_TIMESTAMP con una columna TIMESTAMP, la función aceptará el valor directamente, con no implícito La transformación "cadena a marca de tiempo Unix".
FROM_UNIXTIME(unix_timestamp)
Devuelve el valor representado por el parámetro unix_timestamp en formato 'AAAA-MM-DD HH:MM:SS' o AAAAMMDDHHMMSS, dependiendo de si la función está en una cadena o se utiliza en un contexto numérico.
[sql] ver Plaincopyprint?
mysqlgt; seleccione FROM_UNIXTIME(875996580);
-gt;
mysqlgt; seleccione FROM_UNIXTIME(875996580) 0;
-gt; 19971004222300
FROM_UNIXTIME(unix_timestamp, formato)
Retorno significa Unix Una cadena de marcas de tiempo, formateadas según la cadena de formato. El formato puede contener los mismos modificadores que las entradas enumeradas por la función DATE_FORMAT().
[sql] ver Plaincopyprint?
mysqlgt; select FROM_UNIXTIME(UNIX_TIMESTAMP(),
'Y D M h:i:s x'); >
-gt; '1997 23 de diciembre 03:43:30 x'
Utilice la función UNIX_TIMESTAMP para convertir los datos del tipo de fecha en la base de datos MySQL en un número entero en forma de marca de tiempo Unix:
[sql] ¿ver Plaincopyprint?
seleccione UNIX_TIMESTAMP('2006-02-28') testdate;
[sql] ¿ver Plaincopyprint?
Tiene sentido La marca de tiempo obtenida debe ser utilizada directamente por la fecha() de PHP y otras funciones. Pero lo extraño es:
echo date("Y-m-d", $testdate);
La fecha mostrada es un día menor que la fecha real en la base de datos, lo cual es desconcertante. desatar. Después de verificar repetidamente la descripción de MySQL de la función UNIX_TIMESTAMP, finalmente descubrí el problema: "El servidor interpreta la fecha como un valor en la zona horaria actual y la convierte a un valor interno en UTC. Resulta que la marca de tiempo obtenida por UNIX_TIMESTAMP de MySQL". La función es la hora UTC, en lugar de la hora en una zona horaria específica establecida por el servidor. Después de dicha conversión, la marca de tiempo se reduce en 8 horas de la nada (para nosotros), y la marca de tiempo en PHP calcula la hora local en la zona horaria establecida del sistema. Por lo tanto, la fecha 2006-02-28 se resta 8 horas y, naturalmente, se convierte en 2006-02-27.
[sql] ¿ver Plaincopyprint?
Solución: volver a agregar estas ocho horas (UNIX_TIMESTAMP('2006-02-28' INTERVAL 8 HOUR)); o abandonar la función UNIX_TIMESTAMP, obtenerla directamente. la cadena de fecha de MySQL y luego usa la función strtotime() para convertir la cadena en una marca de tiempo local real.
Descubrir el animal cuyo cumpleaños es el próximo mes también es fácil.
Suponiendo que el mes actual es abril, entonces el valor del mes es 4. Puede encontrar animales nacidos en mayo (mayo) mediante:
[sql] view Plaincopyprint?
mysqlgt; nombre, nacimiento DE mascota DONDE MES(nacimiento) = 5
.............
$conn= mysql_connect("localhost"," root","1234")or die("Error al conectarse a la base de datos");
$conndb=mysql_select_db("test",$conn)or die("Error al conectarse a la tabla" ")
$query="select * from ttable";
$resultado = mysql_query($query,$conn);
mientras($row = mysql_fetch_array); ($resultado)){
$filas[]=$fila;
}
$random =rand(0, count($filas) );
print_r($filas[$aleatorio]);