Mysql
 sql >> Baza danych >  >> RDS >> Mysql

LPAD z wiodącym zerem

Myślę, że powinieneś wziąć pod uwagę, że przeczytane wytyczne dotyczą sposobu wyświetlania faktury , a nie jak powinno być przechowywane w bazie danych.

Gdy liczba jest przechowywana jako INT, jest to czysta liczba. Jeśli dodasz zera na początku i zapiszesz go ponownie, nadal będzie to ten sam numer.

Możesz wybrać pole NUMER w następujący sposób lub utworzyć widok dla tej tabeli:

SELECT LPAD(NUMER,6,'0') AS NUMER
FROM ...

Lub zamiast zmieniać dane po wybraniu ich z bazy danych, rozważ uzupełnienie liczby zerami podczas jej wyświetlania i tylko wtedy, gdy ją wyświetlasz.

Myślę, że twoje wymaganie, aby dane historyczne pozostały takie same, jest kwestią sporną. Nawet w przypadku danych historycznych faktura o numerze 001203 jest taka sama jak faktura o numerze 1203.

Jeśli jednak absolutnie musisz to zrobić tak, jak opisujesz, konwersja do pola VARCHAR może zadziałać. Przekonwertowane dane historyczne można przechowywać bez zmian, a wszelkie nowe wpisy można uzupełnić do wymaganej liczby zer. Ale nie polecam tego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co standard SQL mówi o nawiasach w instrukcjach SQL UNION/EXCEPT/INTERSECT?

  2. Jak zapobiegać przekroczeniu limitu czasu połączenia w przypadku dużych importów MySQL

  3. Kardynalność indeksu MySQL — wydajność vs wydajność pamięci masowej

  4. Tożsamość EF Core 2,0 — dodawanie właściwości nawigacji

  5. Kolumna alternatywnej tabeli MySQL