Typ danych dla samego roku przy tworzeniu tabeli

1

Cześć
Jaki typ danych w postgresql```sql dać przy tworzeniu kolumny rok wydania? Jak daje date, timestamp to wyskakuje błąd invalid input syntax for type timestamp: "2017"

create table ksiazka
(
id serial not null,
rok_wydania timestamp(4),
constraint ksiazka_pkey primary key (id)
);

insert into (rok_wydania) values ('2017');
3

Int?

2

To jak już smallint.

1

Int i smallint działają, dzięki

3

Ale tu nie chodzi co działa! Chodzi o to co powinno zostać wybrane. I z założenia dobierasz typ danych który jest najlżejszy (zajmuje najmniej miejsca) i spełnia Twoje kryteria. Także w tym wypadku jest to smallint które jest 2x mniejsze niz int a możesz tam wpisać liczby od -32768 do +32767.
Patrz tabela: https://www.postgresql.org/docs/9.1/datatype-numeric.html

0

Wykładowca kazał by wyświetlało się 2017 bez przecinka.

5
Marta Długa napisał(a):

Wykładowca kazał by wyświetlało się 2017 bez przecinka.

Wyświetlanie liczby całkowitej w formacie niemieckim, amerykańskich czy jakimś innych (z przecinkiem miedzy tysiącami) nie zależy od bazy danych, tylko od narzędzia w jakim to przeglądasz
Tam szukaj źródła problemu

UPDATE: typ smalint jest zdecydowanie dobry wyborem.

3

Co to znaczy "wyświetlało się" gdzie ma się wyświetlać ? Dane w bazie trzymasz bez przecinka a ze wyświetla Ci tak liczby na podstawie ustawień regionalnych oprogramowania które używasz to inna sprawa.

Edit: Any mnie uprzedził :)

4

Na marginesie wątku, do wyjadaczy, nie zeby p. Marta się przejmowała.

Smallint zachowa się poprawnie nawet w starozytności, sortorowania, takie tam - za jednym wyjątkiem, liczenie wieku (odstępu czasu) pne / ne.

Macie w świeżej "pamięci podręcznej", że nie było roku zerowego? Nie żeby brak tej wiedzy dyskwalifikował, raczej news z pogranicza "wiedzy niepotrzebnej"

0

Jeśli typ danych dam varchar to czy z tego powodu mogą być problemy przy modyfikacji kolumny, tabeli, przy zapytaniach?
Tylko varchar wyświetla bez przecinka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0