Autor Téma: Paradox (BDE) - Změna roku ve záznamu datetime  (Přečteno 1232 krát)

Offline luccas

  • Nováček
  • *
  • Příspěvků: 2
  • Karma: 0
    • Verze Delphi: XE7
Zdravím,
chtěl bych se zeptat zkušenejších na jednu věc se kterou si prostě po delším hledání nevím rady.

Je to úprava již existující tabulky.

Mám sloupec v Paradox databázi (datetime) a potřebuji udělat SQL update konkrétního údaje. V tomto případě je to změnit rok.

Originál je : "8.7.0216 17:00:00" a já potřebuji "8.7.2016 17:00:00"

začal jsem si skládat select:  CAST(EXTRACT(day from datumcas) AS char(10)) ||  '.' || CAST(EXTRACT(month from datumcas) AS char(10)) ||  '.' || CAST(EXTRACT(year from datumcas) AS char(10))
jenže prostě už nevím jak dál.

Na internetu jsem našel co potřebuji, ale je to pro MSSQL, takže mi to nepomůže.
http://stackoverflow.com/questions/18343116/update-only-date-portion-of-datetime

Díky za nasměrování, pomoc.
Luk

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2996
  • Karma: 29
    • Verze Delphi: XE7 professional
Re:Paradox (BDE) - Změna roku ve záznamu datetime
« Odpověď #1 kdy: 03-11-2016, 14:50:04 »
Nejde prepísať priamo celú hodnotu, než len jej časť?
Osobne by som vytiahol DateTime do delphi a tam použil funkciu na zmenu roka. Potom by som to vrátil do DB.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline luccas

  • Nováček
  • *
  • Příspěvků: 2
  • Karma: 0
    • Verze Delphi: XE7
Re:Paradox (BDE) - Změna roku ve záznamu datetime
« Odpověď #2 kdy: 03-11-2016, 16:30:48 »
Chtěl jsem to řešit právě na úrovni SQL přes update. Když těch vadných záznamů bude více, tak ať nemusím ručně procházet záznam po záznamu.

Jinak teda normálně bych procházel v cyklu celou tabulku přes TTable a tam to měnil už klasicky?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2996
  • Karma: 29
    • Verze Delphi: XE7 professional
Re:Paradox (BDE) - Změna roku ve záznamu datetime
« Odpověď #3 kdy: 03-11-2016, 19:50:29 »
Citace
Chtěl jsem to řešit právě na úrovni SQL přes update. Když těch vadných záznamů bude více, tak ať nemusím ručně procházet záznam po záznamu.
Prvej vete vôbec nerozumiem. Jednak neviem čo myslíš výrazom "na úrovni SQL". A po druhé vždy budeš robiť update. Ver tomu, že ručne by si všetky chybné záznamy nenašiel. A prečo ručne, keď na to máme stroj - PC.
Citace
Jinak teda normálně bych procházel v cyklu celou tabulku přes TTable a tam to měnil už klasicky?
Nie. Vytvor si SQL Select, ktorý vytiahne neplatné údaje aj s PK. Až tento DataSet budeš prechádzať v cykle a zjednáš nápravu.
Budeš v ňom mať niečo na spôsob
WHERE NOT (YEAR BETWEEN 2000 AND 2016)
Len je otázne, či budeš vedieť programovo určiť aký dátum tam má správne byť.

Poznámka: hlavne sa do DB nesmú dostať neplatné údaje!!!
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Kolik je šest plus čtyři (slovem):