Datové formáty v SQL   zodpovězená otázka

VB.NET

Zdravím, chtěl jsem se zeptat jaký datový typ buňky v tabulce na sql serveru mám použít pokud chci zapsat hodnotu vrácenou fcí " System.DateTimeOffset.Now ".Používám Visual Studio 2005. Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak například nvarchar MAX:-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tady není odpověď bohužel jednoznačná. Záleží na několika faktorech:

1. Jakou přesnost potřebujete?

2. Jak budete datový typ nakonec využívat v aplikaci?

3. Budete potřebovat například porovnávání už v rámci databáze?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Nevím, jaké možnosti nabízí SQL pro uložení struktur - je-li možno nějak definovat a hlavně ukládat takovéto složené typy, ale chtěl jsem se zeptat co Vás vede k jeho použití. Nestačilo by Vám v databázi uchovávat pouze jednoduché typy DateTime. Podle mého při uchování výsledku DateTime.Now jste schopen si z uložené hodnoty celou strukturu DateTimeOffset zpětně poskládat (leda pokud počítáte s cestováním uživatele, pak by mělo stačit uložit si ještě hodnotu datetime.utcnow (abyste mohl odvodit správný posun od UT).

Berte to, prosím, jako laický názor, protože by mne fakt zajímalo, co datetimeoffset přináší tak prospěšného.

Jinak, nevím, je-li to dle zásad správné práce s databází, ale pokud si svou hodnotu převedete na string (system.datetimeOffset.Now.toString) a jako string uložíte, dá se to zpětně přetypovat a dostanete kompletní původní strukturu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Asi nejlepší by bylo provést binární serializaci a uložit to do pole VARBINARY(MAX), ale pokud budete s touto hodnotou chtít pracovat i na úrovni databáze a ne jenom v aplikaci, pak je samozřejmě tato metoda nepoužitelná. V takovém případě je lepší řešení pana Langera.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback