2011-08-10 15 views
5

Tengo un par de preguntas con respecto a las fechas en SQL Server.Microsoft SQL Server 2008 - Fechas

  1. ¿Cómo separar un valor datetime "2011-08-10 14: 56: 17.267" en la fecha y marca de tiempo en dos columnas separadas. P.ej. Fecha "2011-08-10" y marca de tiempo "14:56:17"

  2. Quiero eliminar la marca de tiempo del valor datetime en "2011-08-10" y todavía puedo ordenar los datos por fecha (por lo tanto, no convertido a varchar). También existe la posibilidad de cambiar el valor de la fecha como '10 de agosto de 2011 'y todavía se puede ordenar (no en orden alfabético, sino en orden de fecha real).

Gracias, HL

+0

Estas dos preguntas probablemente deberían publicarse por separado. –

Respuesta

0

uso función CONVERT con los parámetros de recursos http://www.mssqltips.com/tip.asp?tip=1145

-- simple conversion example: 
SELECT CONVERT(VARCHAR(10), GETDATE(), 102) -- for date 
SELECT CONVERT(VARCHAR(10), GETDATE(), 8) -- for time 
6

Para el primero de ellos:

UPDATE atable 
SET 
    DateColumn = CAST(DateTimeColumn AS date), 
    TimeColumn = CAST(DateTimeColumn AS time) 

En cuanto a la segunda, la fecha el formato de visualización es algo que no está relacionado con la fecha valor. Puede ordenar el resultado establecido por su columna de fecha, pero en la cláusula SELECT puede usar CONVERT para mostrar la fecha en el formato deseado. Por ejemplo:

SELECT 
    CONVERT(varchar, DateColumn, 106) AS Date, 
    … 
FROM atable 
ORDER BY DateColumn 
Cuestiones relacionadas