Estoy trabajando en una consulta en Sql Server 2005 donde necesito convertir un valor en DateTime
variable en una varchar
variable en yyyy-mm-dd
formato (sin parte de tiempo). ¿Cómo puedo hacer eso?
303
Estoy trabajando en una consulta en Sql Server 2005 donde necesito convertir un valor en DateTime
variable en una varchar
variable en yyyy-mm-dd
formato (sin parte de tiempo). ¿Cómo puedo hacer eso?
CONVERT
, consulte la documentación de MSDN .Respuestas:
Con Microsoft Sql Server:
fuente
LEFT(.., 10)
lugar deCONVERT(CHAR(10), ...)
? También aquellos que trabajan con las versiones más nuevas de SQL Server que 2005 (!) Deben consultar la respuesta de Zar Shardan que sugiere una solución basada en laFORMAT(date_value, format_string)
función.FORMAT()
es demasiado lento en relación conconvert(char(10),...)
Aquí hay algunos sql de prueba para todos los estilos.
Aquí está el resultado.
Haga
nvarchar(max)
más corto para recortar el tiempo. Por ejemplo:salidas:
fuente
dd-mm
ojun - 28
. ¿Hay alguna opción?Intenta lo siguiente:
Para una fecha y hora completa y no solo la fecha:
Ver esta página para convertir estilos:
http://msdn.microsoft.com/en-us/library/ms187928.aspx
O la
función CONVERT () de SQL Server
fuente
SQL Server 2012 tiene una nueva función, FORMATO: http://msdn.microsoft.com/en-us/library/ee634924.aspx
y puede usar cadenas de formato de fecha y hora personalizadas: http://msdn.microsoft.com/en-us/library/ee634398.aspx
Estas páginas implican que también está disponible en SQL2008R2, pero no tengo uno a mano para probar si ese es el caso.
Ejemplo de uso (fecha y hora australiana):
fuente
Puedes usar
DATEPART(DATEPART, VARIABLE)
. Por ejemplo:fuente
Ya sea
Cast
oConvert
:Sintaxis para
CAST
:Sintaxis para
CONVERT
:http://msdn.microsoft.com/en-us/library/ms187928.aspx
En realidad, desde que solicitó un formato específico:
fuente
- Esto le da el tiempo como 0 en formato 'aaaa-mm-dd 00: 00: 00.000'
fuente
Con Microsoft SQL Server:
Utilice la sintaxis para CONVERTIR:
Ejemplo:
Para el estilo, puede encontrar más información aquí: MSDN - Cast and Convert (Transact-SQL) .
fuente
Tratar:
Más sobre consejos ms sql
fuente
Intenta lo siguiente:
Entonces necesitaría reemplazar el "." con "-".
Aquí hay un sitio que ayuda a http://www.mssqltips.com/tip.asp?tip=1145
fuente
He corregido la longitud de los datos,
char(10)
ya que desea un formato de cadena específico.fuente
El OP mencionó el formato de fecha y hora . Para mí, la parte del tiempo se interpone en el camino.
Creo que es un poco más limpio eliminar la porción de tiempo (enviando datetime a date) antes de formatear.
fuente
Así es como lo hago:
CONVERT(NVARCHAR(10), DATE1, 103) )
fuente
Puede convertir su fecha en muchos formatos, la sintaxis es fácil de usar:
En su caso , acabo de convertir y restringir el tamaño por nvarchar (10) de esta manera:
Ver más en: http://www.w3schools.com/sql/func_convert.asp
Otra solución (si su fecha es Datetime) es un CAST simple :
fuente
Prueba este SQL:
fuente
Para SQL Server 2008+ Puede usar CONVERTIR y FORMAR juntos.
Por ejemplo, para la marca de tiempo de estilo europeo (por ejemplo, Alemania):
fuente
No dijo qué base de datos, pero con mysql aquí hay una manera fácil de obtener una fecha de una marca de tiempo (y la conversión del tipo varchar debería ocurrir automáticamente):
fuente
La forma más corta y simple es:
fuente
fuente
fuente
Escribir una función
fuente
dará
05/05/2020 10:41:05 AM
como resultadofuente
No dice qué idioma, pero supongo
C#/.NET
que tiene unDateTime
tipo de datos nativo . En ese caso, simplemente conviértalo usando elToString
método y use un especificador de formato como:Sin embargo, advertiría contra el uso de esto en una consulta de base de datos o concatenado en una declaración SQL. Las bases de datos requieren una cadena de formato específica para ser utilizada. Es mejor poner a cero la parte de tiempo y usar DateTime como parámetro SQL si eso es lo que está tratando de lograr.
fuente