Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ GaussDB(DWS)/ Perguntas frequentes/ Uso do banco de dados/ O que devo fazer se o tipo de data for convertido automaticamente para o tipo de carimbo de data/hora durante a criação da tabela?
Atualizado em 2024-05-09 GMT+08:00

O que devo fazer se o tipo de data for convertido automaticamente para o tipo de carimbo de data/hora durante a criação da tabela?

Ao criar um banco de dados, você pode definir o parâmetro DBCOMPATIBILITY para o tipo de banco de dados compatível. O valor de DBCOMPATIBILITY pode ser ORA, TD e MySQL, indicando os bancos de dados Oracle, Teradata e MySQL, respectivamente. Se este parâmetro não for especificado durante a criação do banco de dados, o valor padrão ORA será usado. No modo de compatibilidade ORA, o tipo de data é automaticamente convertido em carimbo de data/hora(0). O tipo de data só é suportado no modo de compatibilidade do MySQL.

Para resolver o problema, você precisa alterar o modo de compatibilidade para o MySQL. O modo de compatibilidade de um banco de dados existente não pode ser alterado. Ele só pode ser especificado durante a criação do banco de dados. O GaussDB(DWS) suporta o modo de compatibilidade do MySQL no cluster versão 8.1.1 e posterior. Para configurar esse modo, execute os seguintes comandos:

1
2
3
4
5
6
7
8
9
gaussdb=> CREATE DATABASE mydatabase DBCOMPATIBILITY='mysql';
CREATE DATABASE
gaussdb=> \c mydatabase
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "mydatabase" as user "dbadmin".
mydatabase=> create table t1(c1 int, c2 date);
NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using round-robin as the distribution mode by default.
HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
CREATE TABLE

Se o problema não puder ser resolvido alterando a compatibilidade, você pode tentar alterar o tipo de coluna. Por exemplo, insira dados do tipo data como cadeias em uma tabela. Exemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
gaussdb=> CREATE TABLE mytable (a date,b int);
CREATE TABLE
gaussdb=> INSERT INTO mytable VALUES(date '12-08-2023',01);
INSERT 0 1
gaussdb=> SELECT * FROM mytable;
          a          | b
---------------------+---
 2023-12-08 00:00:00 | 1
(1 row)
gaussdb=> ALTER TABLE mytable MODIFY a VARCHAR(20);
ALTER TABLE
gaussdb=> INSERT INTO mytable VALUES('2023-12-10',02);
INSERT 0 1
gaussdb=> SELECT * FROM mytable;
          a          | b
---------------------+---
 2023-12-08 00:00:00 | 1
 2023-12-10          | 2
(2 rows)