2010-01-07 18 views
5

Cuando retrived un campo de fecha en SAPO se visualiza como es '1/18/2038 9:14:07 PM',exhibición de la fecha problema en ColdFusion

Pero cuando rertrived en ColdFusion utilizando cfquery y exhibidas usando, entonces me dio la fecha en la pantalla como '2038-01-18 21:14:07.0 '.

¿Alguien tiene idea de por qué se muestra en diferentes formatos? ¿Hay alguna forma de que podamos mostrarla como formato TOAD?

estoy usando base de datos Oracle 10g y ColdFusion 8

Respuesta

8

Se podría utilizar algo como:

<cfquery datasource="northwind" name="queryDB"> 
    SELECT date_used, time_used 
    FROM invoicesTable 
</cfquery> 

<cfoutput query="queryDB"> 
#DateFormat(date_used, "m/d/yyyy")# 
#TimeFormat(time_used, "h:mm tt")# 
</cfoutput> 

Creo que esto es lo que desea.

Usted podría utilizar

#DateTimeFormat(Now(), "mmm d, yyyy","h:mm TT")# 

tener el formato de fecha y hora

feliz de codificación

+0

Tengo la fecha y la hora combinadas en DB como "1/18/2038 9:14:07 PM". En el ejemplo anterior, se recupera por separado – CFUser

+2

@CFUser, así es como funciona en CF: las fechas y las horas de las funciones de formato aceptan el objeto de fecha pero devuelven solo la parte propia. Siempre puede ajustar ambas funciones en la única UDF, como FormatDateTime(). – Sergii

+2

No conozco una función incorporada llamada 'DateTimeFormat()'. Ben Nadel tiene una implementación en su blog, sin embargo. http://www.bennadel.com/blog/717-ColdFusion-DateTimeFormat-Utility-Function.htm – Tomalak

5

La variable de fecha y hora de ColdFusion que se ha recuperado de su base de datos tiene toda la información que está solicitando. Coldfusion lo convertirá automáticamente a una variedad de salidas dependiendo de su necesidad usando algunas funciones integradas.

<!--- Assuming that 'myDateTime' is a datetime variable retrieved from cfquery ---> 
<cfoutput> 
    <!--- Outputs: 1/7/2010 ---> 
    #dateFormat(myDateTime, "m/d/yyyy")# 
    <!--- or use a mask shortcut - only outputs two digit year: 1/7/10 ---> 
    #DateFormat(myDateTime, "short")# 

    <!--- Outputs: 8:47:14 AM ---> 
    #timeFormat(myDateTime, "h:mm:ss tt")# 
    <!--- or use the shortcut: ---> 
    #TimeFormat(myDateTime, "medium")# 
</cfoutput> 

Si tiene que construir una sola cadena con el formato de SAPO, entonces es posible concatenar la salida de las cuerdas dateFormat() y timeFormat().

<!--- Outputs: '1/7/2010 8:47:14 AM' ---> 
<cfset toadFormat = dateFormat(myDateTime, "m/d/yyyy") & " " & TimeFormat(myDateTime, "medium")> 

Esto ahorra un poco de molestia si va a utilizar esta información muchas veces. Sin embargo, para la mayoría de las necesidades, esto es innecesario ya que la variable myDateTime original contiene toda la información necesaria para todos los fines que no sean la visualización de salida.

Más información acerca de DateFormat() y TimeFormat() de Adobe. Más sobre DateFormat and TimeFormat shortcuts de Pete Freitag.

+1

No tenía conocimiento de esos atajos de máscara. Gracias por eso. – ale

Cuestiones relacionadas