Format zapisu daty

0

Dzień dobry ponownie,
Podpowiedzcie mi co zrobić. W bazie danych mam zapisaną datę w postaci YYYY-MM-DD HHSS.XXX. Godzina zawsze jest 0000.000, więc nieistotna. Natomiast po pobraniu danych, data wyświetla mi się w formacie: DD.MM.YYYY. Niby zrozumiałe, polski system. Jak zrobić, aby wyświetlała się w formacie: YYYY-MM-DD??? Wiem, że lamerskie pytanie, ale nie mogę sobie z tym poradzić.

0

możesz ustawić właściwość DisplayFormat dla konkretnego pola na yyyy-mm-dd

0

To może doprecyzuję. Wykorzystuję tylko te dane, zapisuję do zmiennej, a potem do pliku. Nie wyświetlam jej sensu sctricte. Może trochę źle napisałem, wyświetla.

2
FormatDateTime('yyyy-mm-dd', query.FieldByName('Data').AsDateTime);
0
Buster napisał(a):

Dzień dobry ponownie,
Podpowiedzcie mi co zrobić. W bazie danych mam zapisaną datę w postaci YYYY-MM-DD HHSS.XXX. Godzina zawsze jest 0000.000, więc nieistotna. Natomiast po pobraniu danych, data wyświetla mi się w formacie: DD.MM.YYYY. Niby zrozumiałe, polski system. Jak zrobić, aby wyświetlała się w formacie: YYYY-MM-DD??? Wiem, że lamerskie pytanie, ale nie mogę sobie z tym poradzić.

Załóżmy optymistycznie, że w bazie masz prawdziwą kolumnę datową (binarnie, ona nie ma żadnego formatu).
Formatuje narzędzie, którym to oglądasz.

Literalnie traktując Twoją wypowiedź, by wychodziło, że masz w polu znakowym sformatowaną w pewien sposób. Precyzja określeń JEST ważna.

2

@Buster: jeśli masz datę zapisaną w zmiennej (obstawiam, że typu TDateTime), to możesz ją przekonwertować na ciąg znaków np. za pomocą funkcji FormatDateTime. Możesz określić format danych (kolejność składowych) oraz podać strukturę z ustawieniami regionalnymi (albo tego nie robić i skorzystać z tej domyślnej). Przykład:

var
  DateTime: TDateTime;
  DateLine: String;
begin
  DateTime := Now();
  DateLine := FormatDateTime('YYYY-MM-DD', DateTime);

W zmiennej DateLine znajdzie się łańcuch 2020-08-03.

0

Dziękuję za wyczerpujące wykłady. Podpowiedź, której funkcji użyć z powodzeniem wystarczyła. Ja nie jestem taki do końca zielony. ;)

0
procedure TForm1.Button1Click(Sender: TObject);
var
  Data : TDateTime;
begin
  Data := Now();
  Caption := FormatDateTime('YYYY-MM-DD, HH:MM:SS:ZZZ', Data);  // myslę, że zamiast XXX powinno być ZZZ
end;

Po drugie moim zdaniem żadne bazy nie bawią się w zapis milisekund do odczytu dla uzytkownika. Ograniczają się dla bezpieczeństwa co do zapisu HHSS. No chyba, że Masz do czynienia z zegarem atomowym, który jest w Niemczech. O co mi dokładnie chodzi. a o to, że kiedy Tworzysz zmienną a ona jest przypisana HHSS nie musisz bawić się w milisekundy. Np Janek HHSS, Bartek HHSS. Zapis do bazy danych musi być zawsze natychmiastowy, beż żadnych ozdobników. One już same mogą w swej istocie spowolnić prace procesora a co za tym idzie przekłamanie ZZZ.

3
Bruno(M) napisał(a):
procedure TForm1.Button1Click(Sender: TObject);
var
  Data : TDateTime;
begin
  Data := Now();
  Caption := FormatDateTime('YYYY-MM-DD, HH:MM:SS:ZZZ', Data);  // myslę, że zamiast XXX powinno być ZZZ
end;

Po drugie moim zdaniem żadne bazy nie bawią się w zapis milisekund do odczytu dla uzytkownika.

MSSQL w typie datetime trzyma dane z dokładnością do 1/300 sekundy (a dokładnie wartkości milisekund jest zaokrąglana do najbliższej wartości 0,000, 0.003 lub .007), a w typie datetime2 z dokładnością do 100 nanosekund, a więc każda milisekunda zostanie zapisana.

I to by było tyle w temacie Twojego zdania.

Ograniczają się dla bezpieczeństwa co do zapisu HHSS.

Bezpieczeństwa?
A co tu jest niebezpiecznego?

No chyba, że Masz do czynienia z zegarem atomowym, który jest w Niemczech.

Ale mam do czynienia z (powiedzmy) IoT i potrzebuję takiej dokładności.

O co mi dokładnie chodzi. a o to, że kiedy Tworzysz zmienną a ona jest przypisana HHSS nie musisz bawić się w milisekundy. Np Janek HHSS, Bartek HHSS.

To że tak to widać, to nie oznacza że w tej zmiennej tych wartości nie ma.
Format wyświetlania a same dane, to są dwie zupełnie różne i niezależne od siebie sprawy.

Zapis do bazy danych musi być zawsze natychmiastowy, beż żadnych ozdobników. One już same mogą w swej istocie spowolnić prace procesora a co za tym idzie przekłamanie ZZZ.

To są jakieś czary i zaklinanie rzeczywistości a nie rzetelna wiedza.

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