🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.lang.csharp
2 messages
2 total messages Started by saper/nolin11 Sun, 25 Dec 2011 19:43
Konwersja typu data z mssql do (big)int i insert (z pogranicza VC#)
#22319
Author: saper/nolin11
Date: Sun, 25 Dec 2011 19:43
37 lines
2439 bytes
Witam,


Najpierw, wesołych świąt wszystkim czytającym :)

Ale do sedna, mam 3 tabele w bazie danych które zawierają po paręset
tysięcy rekordów i jak robię zrzut danych to Management Studio po
każdych 100 rekordach wrzuca mi w skrypt:
GO
print 'Processed blebleble total records.'
Co bardzo spowalnia ładowanie takiego skryptu i muszę też ręcznie
poprawić parę rzeczy :/ ,ażebym mógł go użyć do aktualizacji.

Więc napisałem programik na konsolę co robi zrzut tych tabel do pliku
sql wedle moich wytycznych (zmiana nazwy tabeli, bazy, i dodaje GO |
print co 1/100 rekordów (co 1% ale i to mogę sobie zmienić jak coś :) ))
i utknąłem z kolumną typu "date".
Nie potrafię skonwertować pola date do typu int/long tak ,ażeby można
było potem tą datę zaimportować z pliku sql do bazy mssql.
Używam w programie do pobierania danych sqlDataAdapter i DataTable jak
ma to jakieś znaczenie.

Dlaczego nie chcę użyć formatu daty, ponieważ użytkownik może mieć inny
locale i baza nie przyjmie daty i się wyłoży aktualizacja. Chciałem to
rozwiązać tak jak zrobiony jest "dump" przez Management studio:
INSERT INTO .... (..., [data]) VALUES (...., CAST(0x90340B00 AS Date));

Ale nie potrafię określić jak jest wyliczana ta wartość daty: 0x90340B00
( jest to data: 4.08.2011 ).
Przeglądałem już MSDNa pod kątem typu DATE MSSQLa ale nie przybliżyło
mnie to do jakiegoś rozwiązania :/


-- 
Saper/nolin11
nolinno11_usun_to@gmail.com
gg:4476700
Re: Konwersja typu data z mssql do (big)int i insert (z pogranicza VC#)
#22320
Author: saper/nolin11
Date: Sun, 25 Dec 2011 20:32
45 lines
2848 bytes
On 2011-12-25 20:43, saper/nolin11 wrote:
> Witam,
> 
> 
> Najpierw, wesołych świąt wszystkim czytającym :)
> 
> Ale do sedna, mam 3 tabele w bazie danych które zawierają po paręset
> tysięcy rekordów i jak robię zrzut danych to Management Studio po
> każdych 100 rekordach wrzuca mi w skrypt:
> GO
> print 'Processed blebleble total records.'
> Co bardzo spowalnia ładowanie takiego skryptu i muszę też ręcznie
> poprawić parę rzeczy :/ ,ażebym mógł go użyć do aktualizacji.
> 
> Więc napisałem programik na konsolę co robi zrzut tych tabel do pliku
> sql wedle moich wytycznych (zmiana nazwy tabeli, bazy, i dodaje GO |
> print co 1/100 rekordów (co 1% ale i to mogę sobie zmienić jak coś :) ))
> i utknąłem z kolumną typu "date".
> Nie potrafię skonwertować pola date do typu int/long tak ,ażeby można
> było potem tą datę zaimportować z pliku sql do bazy mssql.
> Używam w programie do pobierania danych sqlDataAdapter i DataTable jak
> ma to jakieś znaczenie.
> 
> Dlaczego nie chcę użyć formatu daty, ponieważ użytkownik może mieć inny
> locale i baza nie przyjmie daty i się wyłoży aktualizacja. Chciałem to
> rozwiązać tak jak zrobiony jest "dump" przez Management studio:
> INSERT INTO .... (..., [data]) VALUES (...., CAST(0x90340B00 AS Date));
> 
> Ale nie potrafię określić jak jest wyliczana ta wartość daty: 0x90340B00
> ( jest to data: 4.08.2011 ).
> Przeglądałem już MSDNa pod kątem typu DATE MSSQLa ale nie przybliżyło
> mnie to do jakiegoś rozwiązania :/
> 
> 

Sam sobie odpowiem :D ,jednak po kolacji lepiej się myśli :D

Rozwiązanie przez dodanie kolumny do wyniku zapytania sql:
SELECT *,CONVERT(VARBINARY, [data], 2) AS [data2] FROM [tabela1]
:)

-- 
Saper/nolin11
nolinno11_usun_to@gmail.com
gg:4476700
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads