Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Sumar datos tipo TIME sql 2012

Estas en el tema de Sumar datos tipo TIME sql 2012 en el foro de SQL Server en Foros del Web. Buenas, soy nuevo en esto de por acá, asi que daré una explicación de mi "base de datos". Estoy creando una CasaDisquera, meter información sobre ...
  #1 (permalink)  
Antiguo 01/12/2014, 15:38
Avatar de XxNano3000xX  
Fecha de Ingreso: diciembre-2014
Mensajes: 3
Antigüedad: 9 años, 5 meses
Puntos: 0
Sumar datos tipo TIME sql 2012

Buenas, soy nuevo en esto de por acá, asi que daré una explicación de mi "base de datos".

Estoy creando una CasaDisquera, meter información sobre albumes, artistas y canciones.

Tengo estas tablas:

Código SQL:
Ver original
  1. CREATE TABLE Artista(
  2. CodArtis CHAR(3) NOT NULL PRIMARY KEY,
  3. NomArtis VARCHAR(30) NULL,
  4. )
  5. GO
  6.  
  7. CREATE TABLE Generos(
  8. CodGen CHAR(3) NOT NULL  PRIMARY KEY,
  9. NomGen VARCHAR(20) NOT NULL,
  10.  
  11. )
  12. GO
  13.  
  14. CREATE TABLE Album(
  15. Formato VARCHAR(30) NULL,
  16. Precio DECIMAL (7,2) NULL,
  17. CodAlb CHAR(3) NOT NULL PRIMARY KEY,
  18. NomAlb VARCHAR(50) NULL,
  19. CodGen CHAR(3) NOT NULL,
  20. CodArtis CHAR(3) NOT NULL,
  21. CONSTRAINT KY_3 FOREIGN KEY (CodGen) REFERENCES Generos (CodGen),
  22. CONSTRAINT KY_4 FOREIGN KEY (CodArtis) REFERENCES Artista (CodArtis),
  23. )
  24. GO

Código SQL:
Ver original
  1. CREATE TABLE NombreCanciones(
  2. CodAlb CHAR(3) NOT NULL,
  3. NomCan VARCHAR(30) NULL,
  4. Duracion TIME(0) NULL,
  5. CodArtis CHAR(3) NOT NULL,
  6. CONSTRAINT KY_1 FOREIGN KEY (CodAlb) REFERENCES Album(CodAlb),
  7. CONSTRAINT KY_2 FOREIGN KEY (CodArtis) REFERENCES Artista(CodArtis)
  8. )
  9. GO

Como verán en la parte en rojo, tengo el campo Duración con el tipo TIME.
Cuando muestro información de mi tabla, me lo tira "00:22:23".


Lo que quiero es hacer una consulta donde pueda pedir el nombre del álbum, y su respectiva duración en formato de time, ya saben, "00:34:00".


Logro hacer que me aparezca el nombre del album con todas las canciones que contiene, pero no sé como hacer con la duración.

Espero me entiendan, no sé si me expliqué bien.

Última edición por gnzsoloyo; 05/12/2014 a las 14:33 Razón: Aclaración
  #2 (permalink)  
Antiguo 01/12/2014, 15:46
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Sumar datos tipo TIME sql 2012

algo como esto:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. campo TIME
  4. )
  5.  
  6. INSERT INTO #temp VALUES ('00:01:00')
  7. INSERT INTO #temp VALUES ('00:02:00')
  8. INSERT INTO #temp VALUES ('00:03:00')
  9.  
  10.  
  11. SELECT DATEADD(ms, SUM(DATEDIFF(ms, '00:00:00.000', campo)), '00:00:00.000') FROM #temp

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 01/12/2014, 15:50
Avatar de XxNano3000xX  
Fecha de Ingreso: diciembre-2014
Mensajes: 3
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Sumar datos tipo TIME sql 2012

Cita:
Iniciado por Libras Ver Mensaje
algo como esto:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. campo TIME
  4. )
  5.  
  6. INSERT INTO #temp VALUES ('00:01:00')
  7. INSERT INTO #temp VALUES ('00:02:00')
  8. INSERT INTO #temp VALUES ('00:03:00')
  9.  
  10.  
  11. SELECT DATEADD(ms, SUM(DATEDIFF(ms, '00:00:00.000', campo)), '00:00:00.000') FROM #temp

saludos!
Perdona mi ignorancia, he visto varios temas ya, y dicen eso de "#temp", que es?

Y no sé si podrá servirme eso, debo ir a la PC de la uni para pobrarlo, no sé instalar el sql en mi laptop : (
  #4 (permalink)  
Antiguo 01/12/2014, 16:01
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Sumar datos tipo TIME sql 2012

#temp, tabla temporal, que solo vive durante el tiempo en que esta abierta la sesion que la manda llamar, porque hago eso, para que veas el ejemplo en "vivo", el codigo funciona, solo deberias de acomodarlo a tus necesidades
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 01/12/2014 a las 16:40 Razón: Iislas jajajaja
  #5 (permalink)  
Antiguo 01/12/2014, 16:32
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Sumar datos tipo TIME sql 2012

Libras: TABLA TEMPORAL.
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 01/12/2014, 16:40
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Sumar datos tipo TIME sql 2012

Cita:
Iniciado por iislas Ver Mensaje
Libras: TABLA TEMPORAL.
Corregido ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 05/12/2014, 14:28
 
Fecha de Ingreso: julio-2012
Mensajes: 15
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Sumar datos tipo TIME sql 2012

Código SQL:
Ver original
  1. SELECT NomAlb, DATEADD(s, dateTimeInMilliseconds, Duración) AS Duración FROM(
  2.     SELECT NomAlb, SUM((DATEPART(hh,Duracion)*60*60) + (DATEPART(m,Duracion)*60) + DATEPART(s,Duracion)) AS Duración
  3.     FROM Album a INNER JOIN NombreCanciones AS c ON a.CodAlb=c.CodAlb
  4.     WHERE NomAlb = ''
  5.     GROUP BY NomAlb
  6. ) AS y

saludos!!

Última edición por gnzsoloyo; 05/12/2014 a las 14:32 Razón: Usar Highlight "SQL" por favor...

Etiquetas: 2012, campo, sql, tabla, time, tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:09.