Consulta sql

Publicado en 'Programación' por hacksbasura, 20 Jul 2015.





  1. hacksbasura

    hacksbasura Miembro nuevo

    Registro:
    28 Dic 2010
    Mensajes:
    17
    Likes:
    0




    buenas noches foreros tengo una consulta en sql q no se como hacerla
    tengo una tabla "fecha" donde la fecha me aparece junto algo haci

    |FECHA |
    |20150702|

    lo q yo quiero hacer es dividir el 20150702 en diferentes campos

    |AÑO | MES| DIA|
    |2015 | 07 | 02 |

    agradesco su respuesta por anticipado
     


  2. galessandro

    galessandro Miembro frecuente

    Registro:
    21 Mar 2012
    Mensajes:
    231
    Likes:
    26
    hola forero, a ver un par de opciones que se me ocurren

    usando substr:

    select substr('20150702', 0, 4) año,
    substr('20150702', 5, 2) mes ,
    substr('20150702', 7, 2) dia
    from dual;

    usando to_date, to_char:

    select to_char(to_date('20150702', 'yyyyMMdd'),'yyyy') año,
    to_char(to_date('20150702', 'yyyyMMdd'),'MM') mes ,
    to_char(to_date('20150702', 'yyyyMMdd'),'dd') dia
    from dual;
     
  3. gnox

    gnox Miembro maestro

    Registro:
    3 Ene 2013
    Mensajes:
    793
    Likes:
    252
    Primero tiene que mencionar que motor de base de datos usa, el tipo de dato de ese campo (si realmente es char/varchar o date), para indicarle que funciones le pueden servir.
     
  4. AiApaec

    AiApaec Miembro frecuente

    Registro:
    1 May 2014
    Mensajes:
    58
    Likes:
    14
    El valor ya está en un formato de fecha, formato ISO, yyyymmdd (año mes día), por lo que la conversión a tipo datetime es implícita. Por lo menos en t-sql (microsft sql server) y mysql.
    En ambos hay funciones para obtener sólo una parte de una fecha, por ejemplo en t-sql:

    Select DATEPART(year, fecha) N'Year', DATRPART(month,fecha) N'Month', DATEPART(day,fecha) N'Day'
    From Mitabla

    Mysql:
    Select YEAR(fecha) as Year, MONTH(fecha) as month, DAYOFMONTH(fecha) as day
    From Mitabla
     
Etiquetas: