Heim Datenbank MySQL-Tutorial 如何解决ORA-01843与NLS_DATE_FORMAT问题

如何解决ORA-01843与NLS_DATE_FORMAT问题

Jun 07, 2016 pm 05:55 PM
date format

本文将详细介绍如何解决ORA-01843与NLS_DATE_FORMAT问题,需要的朋友可以参考下

在Oracle SQL的where子句中传入字符类型参数'19-11月-08',使得可以直接和日期类型比较,或者转换一下同日期类型比较。
如果传入的字符格式和NSL_DATE_FORMAT一致,那么可以不转换直接用,否则会报ORA-01861错误。如果转换得不正确,则可能会报ORA-01843或其他错误。
例如:
Trc代码
SQL>
代码如下:
elect count(*) from dba_objects where created>to_date('2008-12-01');
select count(*) from dba_objects where created>to_date('2008-12-01')

第 1 行出现错误:
ORA-01861: 文字与格式字符串不匹配
Trc代码
SQL>
代码如下:
select count(*) from dba_objects where created>to_date('19-11月-08','mm-dd-
yyyy');
select count(*) from dba_objects where created>to_date('19-11月-08','mm-dd-yyyy'
)

第 1 行出现错误:
ORA-01843: 无效的月份
不能识别的字符串和格式转换不对的字符串测试时会出现这样的错误。
使用to_date转换的格式字符串主要为'DD-MON-RR'/'DD-MON-RRRR'或'YYYY-MM-DD'/'YY-MM-DD'。
如果能识别,正确的结果应是这样。
SQL>
代码如下:
select count(*) from dba_objects where created>'19-11月-08';

COUNT(*)
----------
4199
这个格式和会话的NLS_DATE_FORMAT参数值相关。
代码如下:
select SYS_CONTEXT('USERENV','NLS_DATE_FORMAT') DF, SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE') DL from dual

DF DL
-------------------- --------------------
DD-MON-RR SIMPLIFIED CHINESE
我们在会话级别修改一下这个参数的值。
SQL> alter session set nls_date_format='YYYY-MM-DD';
会话已更改。
SQL>
代码如下:
select count(*) from dba_objects where created>'19-11月-08';
select count(*) from dba_objects where created>'19-11月-08'

第 1 行出现错误:
ORA-01861: 文字与格式字符串不匹配
这样,原来正确的操作就不对了。使用符合NLS_DATE_FORMAT格式的字符串则可以了。
SQL>
代码如下:
select count(*) from dba_objects where created>'2008-12-01';

这个参数和应用的环境也有关系,有的应用会自动修改这个参数值。因此,测试工作最好放到sqlplus中进行。
数据库级别上这个参数的值是固定不变的,如下所示:
Trc代码
SQL>
代码如下:
select * from v$nls_parameters;
PARAMETER VALUE
------------------------------ ----------------------------------------
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY ¥
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET ZHS16GBK
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY ¥
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE

已选择19行。
NLS_DATE_LANGUAGE是"SIMPLIFIED CHINESE",即简体中文。所以月份值是中文如"11月"。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So erstellen und benennen Sie eine Datei/einen Ordner basierend auf dem aktuellen Zeitstempel So erstellen und benennen Sie eine Datei/einen Ordner basierend auf dem aktuellen Zeitstempel Apr 27, 2023 pm 11:07 PM

Wenn Sie nach einer Möglichkeit suchen, Dateien und Ordner automatisch auf der Grundlage von Systemzeitstempeln zu erstellen und zu benennen, sind Sie hier genau richtig. Es gibt eine supereinfache Möglichkeit, diese Aufgabe zu erledigen. Die erstellten Ordner oder Dateien können dann für verschiedene Zwecke verwendet werden, z. B. zum Speichern von Dateisicherungen, zum Sortieren von Dateien nach Datum usw. In diesem Artikel erklären wir in einigen sehr einfachen Schritten, wie Sie in Windows 11/10 automatisch Dateien und Ordner erstellen und diese entsprechend dem Zeitstempel des Systems benennen. Die verwendete Methode ist ein Batch-Skript, das sehr einfach ist. Ich hoffe, Ihnen hat die Lektüre dieses Artikels gefallen. Abschnitt 1: So erstellen und benennen Sie automatisch einen Ordner basierend auf dem aktuellen Zeitstempel des Systems. Schritt 1: Navigieren Sie zunächst zum übergeordneten Ordner, in dem Sie den Ordner erstellen möchten.

PHP-Warnung: date() erwartet, dass Parameter 2 lang ist, die Zeichenfolge ist eine Lösung PHP-Warnung: date() erwartet, dass Parameter 2 lang ist, die Zeichenfolge ist eine Lösung Jun 22, 2023 pm 08:03 PM

Bei der Entwicklung mit PHP-Programmen stoßen Sie häufig auf Warn- oder Fehlermeldungen. Unter diesen kann eine Fehlermeldung erscheinen: PHPWarning:date()expectsparameter2tobelong,stringgiven. Die Fehlermeldung bedeutet: Es wird erwartet, dass der zweite Parameter der Funktion date() eine lange Ganzzahl (long) ist, aber tatsächlich wird ihm ein String (string) übergeben. Also, wir

Einführung in Methoden und Verwendung der Klassen Date und SimpleDateFormat zur Verarbeitung von Zeit in Java Einführung in Methoden und Verwendung der Klassen Date und SimpleDateFormat zur Verarbeitung von Zeit in Java Apr 21, 2023 pm 03:01 PM

1. Einführung Die Date-Klasse im Paket java.util stellt eine bestimmte Zeit dar, die auf Millisekunden genau ist. Wenn wir unsere Date-Klasse verwenden möchten, müssen wir unsere Date-Klasse einführen. Das direkte Schreiben des Jahres in die Date-Klasse führt nicht zum korrekten Ergebnis. Da das Datum in Java ab 1900 berechnet wird, erhalten Sie das gewünschte Jahr, solange Sie den ersten Parameter mit der Anzahl der Jahre seit 1900 ausfüllen. Der Monat muss um 1 subtrahiert werden und der Tag kann direkt eingefügt werden. Diese Methode wird selten verwendet und die zweite Methode wird häufig verwendet. Bei dieser Methode wird eine Zeichenfolge, die einem bestimmten Format entspricht, z. B. jjjj-MM-tt, in Daten vom Typ „Datum“ konvertiert. Definieren Sie zunächst ein Objekt vom Typ Datum

Welche Optionen gibt es für Kalender- und Datumsbibliotheken in Python? Welche Optionen gibt es für Kalender- und Datumsbibliotheken in Python? Oct 21, 2023 am 09:22 AM

Es gibt viele hervorragende Kalenderbibliotheken und Datumsbibliotheken in Python, die uns bei der Abwicklung datums- und kalenderbezogener Vorgänge helfen können. Als Nächstes stelle ich Ihnen einige gängige Optionen vor und stelle entsprechende Codebeispiele bereit. Datetime-Bibliothek: Datetime ist das integrierte Datums- und Uhrzeitverarbeitungsmodul von Python. Es bietet viele datums- und zeitbezogene Klassen und Methoden, mit denen Datums- und Uhrzeitangaben, Zeitunterschiede und andere Vorgänge verarbeitet werden können. Beispielcode: importdatetime#Erhalten Sie das aktuelle Datum

So erhalten Sie die Millisekundendarstellung eines Datums mithilfe der getTime()-Methode der Date-Klasse So erhalten Sie die Millisekundendarstellung eines Datums mithilfe der getTime()-Methode der Date-Klasse Jul 24, 2023 am 11:42 AM

So erhalten Sie eine Millisekundendarstellung des Datums mit der Methode getTime() der Date-Klasse. In Java ist die Date-Klasse eine Klasse, die zur Darstellung von Datum und Uhrzeit verwendet wird. Es bietet viele nützliche Methoden zum Bearbeiten und Abrufen von Informationen über Datumsobjekte. Unter diesen ist die Methode getTime() eine wichtige Methode in der Date-Klasse, die die Millisekundendarstellung des Datumsobjekts zurückgeben kann. Als nächstes werden wir detailliert beschreiben, wie Sie diese Methode verwenden, um die Millisekundendarstellung eines Datums zu erhalten, und entsprechende Codebeispiele bereitstellen. Verwendung der Date-Klasse

So lösen Sie das Problem, dass Springboot das Datumsfeld so konfiguriert, dass es einen Zeitstempel zurückgibt So lösen Sie das Problem, dass Springboot das Datumsfeld so konfiguriert, dass es einen Zeitstempel zurückgibt May 20, 2023 am 11:16 AM

Nach dem Upgrade von Springboot auf 2.0 wurde das aus der Datenbank gefundene Datum mithilfe von Date empfangen und schließlich direkt an das Frontend zurückgegeben. Es kann normal im Format yyyy-MM-ddHH:mm:ss angezeigt werden Chrom. Das im IE-Browser angezeigte Datum ist jedoch „unverständlich“, da die Version springboot1.x standardmäßig einen Zeitstempel im Feld „Datum“ zurückgibt und Google und IE den Zeitstempel automatisch in yyyy-MM-ddHH:mm:ss ;After konvertieren Springboot2.0, Spring konvertiert das Datumsfeld automatisch in eine UTC-Zeichenfolge (ohne Konfiguration), daher muss das Datum in einen Zeitstempel oder y konvertiert werden

PHP formatiert ein GMT/UTC-Datum/Uhrzeit PHP formatiert ein GMT/UTC-Datum/Uhrzeit Mar 21, 2024 am 10:41 AM

In diesem Artikel wird ausführlich erklärt, wie man ein GMT/UTC-Datum/Uhrzeit mit PHP formatiert. Der Herausgeber hält es für recht praktisch, daher teile ich es Ihnen als Referenz mit und hoffe, dass Sie nach dem Lesen dieses Artikels etwas gewinnen können. Einführung in die Formatierung von GMT/UTC-Datum/Uhrzeit in PHP In PHP ist die Formatierung von GMT/UTC-Datum/Uhrzeit von entscheidender Bedeutung für die korrekte Anzeige und Verarbeitung von zeitzonenübergreifenden Daten. In diesem Artikel wird erläutert, wie Sie ein GMT/UTC-Datum/eine GMT/UTC-Datum/Uhrzeit mit der DateTime-Klasse von PHP formatieren und welche verschiedenen Formatierungsoptionen verfügbar sind. DateTime-Klasse Die DateTime-Klasse repräsentiert ein Datum und eine Uhrzeit. Es kann Datums-/Uhrzeitwerte in Zeitzonen wie GMT/UTC speichern und bearbeiten. Um einen neuen Da zu erstellen

So verwenden Sie Stringbuild-, Date- und Calendar-Klassen in Java So verwenden Sie Stringbuild-, Date- und Calendar-Klassen in Java May 22, 2023 pm 04:52 PM

Stringbuild-Klasse Da der Objektinhalt der String-Klasse nicht geändert werden kann, wird bei jedem Zusammenfügen ein neues String-Objekt erstellt, was zeitaufwändig ist und Speicherplatz verschwendet. Zu diesem Zeitpunkt müssen Sie dieses Problem durch StringBuild lösen Die von Java bereitgestellte Klasse StringBuilder ist ein String-Puffer, der als Container betrachtet werden kann ist variabel. Die Konstruktionsmethode publicStringBuilder(): erstellt einen leeren Puffer publicStringBuilder(Stringsr

See all articles