2016-08-31 1 views
-3

Ich muss herausfinden, wie viele verschiedene Arten von Datumsformaten gibt es in einer einzelnen Varchar-Spalte, die Datum speichert.Suchen Datumsformate in einem einzigen Datumsfeld

Einträge sind zu viele, so kann es manuell nicht tun.

Bitte schlagen Sie eine SQL-Abfrage vor, um verschiedene Arten von Datumsformaten zu finden, die in der Spalte mit Datumsangaben in verschiedenen Formaten vorhanden sind.

+2

Ein Datum hat kein Format – Jens

+1

Wahre Datums-/Zeitfelder speichern binäre Darstellungen, sie haben keine "Formate". Die Formatierung wird nur beim Anzeigen und Durchsuchen der Felddaten verwendet. Im letzteren Fall können parametrisierte Abfragen Formatierungsprobleme vermeiden. Wenn Ihre Felddaten "Formate" haben, klingt es so, als würde es wahrscheinlich als Zeichenfolgen anstelle von Binärdateien gespeichert. In diesem Fall sind Sie SOL, sofern Sie nicht viel Parsing-Code schreiben. –

+0

Ich meine..wie wenn in einer Datenbank mit Datum Spalte "Datum" Daten als gespeichert werden .... 2016-08-31 & 2016-08-31 00:00:00 & mehr solche Formate ... dann wie Finde heraus, Formate –

Antwort

0

Sie sollen Funktion wie folgt erstellen:

CREATE OR REPLACE function f_invalid_date(date_field in varchar2,format_field in varchar2) return number as 
    v_d date; 
begin 
    v_d := TO_DATE(date_field, format_field); 
    return 0; 
exception 
    when others then 
    return 1; 
end; 

und Sie können wie folgt steuern:

select 
f_invalid_date(your_varchar_column/*'20160606'*/,'yyyymmdd') is_date_valid 
from 
your_table; 

und wenn Ihre is_date_valid Spalte ist es ist gültig für das Sendeformat.

So können Sie alle Datumsformat versuchen und sie zählen.

Verwandte Themen