elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  [MySQL] Dividir atributo en dos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [MySQL] Dividir atributo en dos  (Leído 7,289 veces)
Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
[MySQL] Dividir atributo en dos
« en: 9 Mayo 2011, 00:35 am »

Hola,

busco alguna manera de hacer lo siguiente.

Tengo un atributo en mi DB que es la fecha y la hora, es así:

"2011-05-08 23:30:32"

Es decir, fecha y hora separados por un espacio. Necesito meter la hora o la fecha en otro campo aparte, ¿es posible hacerlo automáticamente con alguna sentencia SQL?

En principio supongo que tengo que crear un nuevo campo, que sea la hora, y luego no sé cómo haría para meter la hora automáticamente, sin usar PHPs ni cosas de esas.

Ah otra cosa, ¿se pueden hacer comparaciones con la hora? 23:30:32 > 23:00:09 y cosas así?

Gracias!


En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: [MySQL] Dividir atributo en dos
« Respuesta #1 en: 9 Mayo 2011, 02:49 am »

Tienes que hacer obligatoriamente en MySQL o estáis usando algún lenguaje de programación?
Como en MySQL no existe la función SPLIT(), quizás puedas implementar una función creada. :http://forums.mysql.com/read.php?60,78776,78776


En línea

Te vendería mi talento por poder dormir tranquilo.
Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: [MySQL] Dividir atributo en dos
« Respuesta #2 en: 9 Mayo 2011, 03:01 am »

pues existen los campos de tipo date o time (ademas de datetime) y la funcion substr ademas de las funciones datediff, date, time, timediff, y otro sinfin :)
En línea

Ojo por ojo, y el mundo acabará ciego.
cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: [MySQL] Dividir atributo en dos
« Respuesta #3 en: 9 Mayo 2011, 03:12 am »

Tengo un atributo en mi DB que es la fecha y la hora, es así:
"2011-05-08 23:30:32"
Es decir, fecha y hora separados por un espacio. Necesito meter la hora o la fecha en otro campo aparte, ¿es posible hacerlo automáticamente con alguna sentencia SQL?

Ah otra cosa, ¿se pueden hacer comparaciones con la hora? 23:30:32 > 23:00:09 y cosas así?

yo lo haría así: suponiendo que tienes los siguientes datos:

Código:
mysql> select * from tabla_ejemplo1;
+----+--------+---------+---------------------+
| id | campo1 | campo2  | fecha               |
+----+--------+---------+---------------------+
|  1 | valor1 | valor2  | 2011-05-08 20:11:31 |
|  2 | valor3 | valor4  | 2011-05-08 20:19:57 |
|  3 | valor5 | valor6  | 2011-05-08 20:20:05 |
|  4 | valor7 | valor8  | 2011-05-08 20:20:10 |
|  5 | valor9 | valor10 | 2011-05-08 20:20:15 |
+----+--------+---------+---------------------+

uso las funciones LEFT y RIGHT
Código
  1. SELECT campo1, campo2, LEFT((fecha),10) AS dia, RIGHT((fecha),8) AS hora FROM tabla_ejemplo1 WHERE id=3;

devuelve:
Código:
+--------+--------+------------+----------+
| campo1 | campo2 | dia        | hora     |
+--------+--------+------------+----------+
| valor5 | valor6 | 2011-05-08 | 20:20:05 |
+--------+--------+------------+----------+

Ah otra cosa, ¿se pueden hacer comparaciones con la hora? 23:30:32 > 23:00:09 y cosas así?

En ese caso puedes usar between
Código
  1. SELECT * FROM tabla_ejemplo WHERE fecha BETWEEN '2010-01-01' AND '2011-01-01';
  2.  

espero te sirva.
« Última modificación: 9 Mayo 2011, 03:19 am por cassiani » En línea

Kasswed
Colaborador
***
Desconectado Desconectado

Mensajes: 5.295

Rolling Stones


Ver Perfil
Re: [MySQL] Dividir atributo en dos
« Respuesta #4 en: 10 Mayo 2011, 00:44 am »

Ya lo arreglé con las funciones DATE() y TIME()!

Gracias a todos!
En línea

"He who allows himself to be insulted, deserves to be."

Repórtame cualquier falta a las normas del foro por mensaje privado.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines