Lo que estoy tratando de lograr es bastante recta hacia adelante, para obtener un formato de fecha a otra;

De Esto: Jan 30 2013 12:00:00:000AM
A Este: DD/MM/YYYY o en este caso 30/01/2013

Sin embargo, cuando es el 1 y el 9 del mes en el formato de la fecha es que falta un cero y hay dos espacios, como se muestra;

Jul  3 2014 12:00:00:000AM

He cazado ronda en busca de una solución, pero sin éxito, el formato de la fecha es inusual y varía dependiendo del día del mes, sin embargo este formato es generado por un sistema interno y no puede ser cambiado. Tendría yo entonces que el patrón coincide con el fin de cambiar el formato? ¿Cómo puedo hacer esto?

Un ejemplo de la parte de la consulta es esta;

SELECT
PREFIX_TableName.ColumnName1 AS Name,
PREFIX_TableName.ColumnName2 AS E-Mail,
PREFIX_TableName.ColumnName3 AS TransactionDate,
PREFIX_TableName.ColumnName4 AS OrderNumber,
...

La línea para ser editado, este PREFIX_TableName.ColumnName3 AS TransactionDate,

posterior a la consulta que han tratado de
Es MySql o Sql-Server? Que se han etiquetado tanto
De qué tipo de datos hace su columna? Es un tipo Datetime o un tipo de datos Varchar?
Lo mejor es mantener todo en SQL Server en datetime (o datetime2) tipos, y sólo hacer cualquier cadena de formato mucho más cerca del usuario.
Es un MSSQL consulta a través de OPENQUERY a un ADP KCML de la base de datos

OriginalEl autor | 2013-07-10

5 Comentarios

  1. 29

    Si DB es SQL Server luego

    select Convert(varchar(10),CONVERT(date,YourDateColumn,106),103)
    Esta es la forma correcta de hacerlo. Yo esperaba que usted tendría que usar 109 como la entrada datetime estilo, aunque 106 parece funcionar bien. En cualquier caso, SQL Server interpreta Jul 3 2014 12:00:00:000AM correctamente, incluso si hay un espacio adicional entre el mes y la fecha. Echa un vistazo a msdn.microsoft.com/en-us/library/ms187928.aspx para obtener más opciones de conversión.
    Este debe marcar la respuesta correcta

    OriginalEl autor Romesh

  2. 6

    Si he entendido tu pregunta, intenta algo como esto

    declare @dd varchar(50)='Jan 30 2013 12:00:00:000AM'
    
    Select convert(varchar,(CONVERT(date,@dd,103)),103)

    Actualización

    SELECT
    PREFIX_TableName.ColumnName1 AS Name,
    PREFIX_TableName.ColumnName2 AS E-Mail,
    convert(varchar,(CONVERT(date,PREFIX_TableName.ColumnName3,103)),103) AS TransactionDate,
    PREFIX_TableName.ColumnName4 AS OrderNumber
    Ahora he publicado la parte pertinente de la consulta en la descripción de arriba.
    He actualizado la respuesta, es que lo que usted espera?
    Me he dado una prueba y la consulta no se ejecuta.
    ¿Cuál es el error que tienes. Sólo trate de la selección de la columna de la fecha SELECT convert(varchar,(CONVERT(date,PREFIX_TableName.ColumnName3,103)),103) AS TransactionDate FROM PREFIX_TableName
    error de sintaxis en: … PREFIX_TableName.ColumnName3, >>> convertir <<< (varchar(CONVERT(fecha,PREFIX_TableName.ColumnName3,103)),103)…

    OriginalEl autor huMpty duMpty

Dejar respuesta

Please enter your comment!
Please enter your name here