Formatowanie wartości liczbowych w PowerShell

2013-08-24

Ilekroć w wyniku skryptu pojawia się wartość liczbowa, warto zaprezentować ją tak, aby była czytelna. Nieważne czy chodzi o ilość wolnego miejsca na dysku, którą skrypt zaprezentował w bajtach, a ty wolałbyś ją zobaczyć w GB czy o liczbę, którą należy wyświetlić z separatorem tysięcy.

Dajmy na to zmienną z przypisaną wartością:

$x=1.23456789

Jeśli chesz ją wyświetlić piszesz:

$x

Domyślnie wyświetli się dokładna wartość zmiennej. Wystarczy zmienić komendę na

"{0:N2}" -f $x Czytaj dalej »
By Rafał Kraik in Power Shell

Kilka przydatnych poleceń PowerShella

2013-08-23

Get-Content

Pobiera zawartość pliku z dysku, np.

Get-Content C:\temp\service-names.txt

Możesz użyć do tego aby w pliku tekstowym przechowywać listę usług lub baz danych, wczytać ją przy pomocy Get-Content i potokiem przesłać dalej do kolejnej komendy, która uruchomi te usługi lub uruchomi zadania w określonych bazach danych.

Get-Service

Wyświetla usługi zdefiniowane na komputerze np.

Get-Service

Możesz przekazać do polecenia potokiem tekstem przekazując nazwy serwisów, które chcesz uwzględnić, albo poprzez parametr Name wskazać, które należy wziąć pod uwagę. Czytaj dalej »

By Rafał Kraik in Power Shell

Aplikacja .NET C# korzystająca z danych MS SQL Server cz.2

2013-08-23

W tym artykule pokażę, jak można z aplikacji w c# sięgać do bazy danych SQL. Artykuł jest częścią serii artykułów na ten temat prezentujących różne sposoby.

PRACA Z POLECENIAMI SQL

Z góry uprzedzam, że lepszym rozwiązaniem wydaje się jednak generowanie odpowiedniego DataSet i korzystanie ze strongly typed dataset. Dzięki temu unikniesz literówek, których tu można wygenerować dziesiątki…

Wyświetlenie rekordów

Zakładam, że mamy bazę danych i właśnie piszemy aplikację, która powinna dane z SQL Servera pobierać i modyfikować. Czytaj dalej »

Jak usunąć ze zmiennej DATETIME część dotyczącą sekund i pozostałe, zostawiając datę i czas z dokładnością do minuty

2013-08-21

Problem jest następujący. Mamy czas z taką dokładnością jak np DATETIME lub DATETIME2. Chcemy pozbyć się części od sekund w dół, czyli mają pozostać tylko data, godzina i minuta.

Z pomocą przychodzi tym SMALLDATETIME. Działa on z dokładnością do sekund, ale… kiedy konwertujesz do niego, to funkcja CAST przeprowadza konwersję z dokładnością do minut! Czemu by z tego nie skorzystać!?

DECLARE @d DATETIME = '2013-08-20 23:31:23′

SELECT CAST(@d AS SMALLDATETIME)

Jeśli z jakiegoś powodu chcemy, aby wynik był typu datetime, należy jeszcze raz dodać konwersję:

SELECT CAST(CAST(@d AS SMALLDATETIME) AS DATETIME)

wynik konwersji do small date time

Jeżeli pracujesz na SQL 2012 lub nowszym, to można skorzystać także z funkcji DateTimeFromParts

 

Inne rozwiązania:

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/5e4c8136-7ec8-4220-a711-86c0a3b29c74/removing-seconds-and-milliseconds-from-datetime

http://technet.microsoft.com/en-us/library/ms182418.aspx

 

By Rafał Kraik in SQL

Generowanie tabeli interwałów czasowych

2013-08-21

Problem jest następujący. Potrzebna jest tabela wypełniona godzinami (lub datami), w oparciu o którą dalej będzie można budować wyrażenie JOIN dobierające dane z innej tabeli tak aby agregować wszystkie zdarzenia z danej godziny razem.

Oto moja propozycja:

CREATE PROCEDURE dbo.GetIntervals @dateTimeStart DATETIME, @countMax INT
AS
BEGIN
CREATE TABLE #time
( StartInterval SMALLDATETIME,
StopInterval SMALLDATETIME) Czytaj dalej »
By Rafał Kraik in SQL

Czy wielkość liter w nazwie tabeli ma znaczenie?

2013-08-21

I tak i nie. Każda baza danych ma tzw. collation. Collation określa między innymi stronę kodową, która ma wpływ na porównywanie ze sobą napisów, w tym porównywanie wielkości znaków. Jeżeli więc Collation jest zdefiniowane, jako CASE SENSITIVE (czułe na wielkość liter), to pisząc zapytanie musisz odwoływać się do obiektów pisząc nazwy tych obiektów wielką lub małą literą. Jeżeli Collation w bazie danych jest ustawione jako CASE INSENSITIVE (brak rozróżniania małych i wielkich liter), to zapytania można sobie pisać obojętnie jakimi literami.

Wielkość liter w poleceniach (jak np SeLeCt) nigdy nie ma znaczenia.

Collation może być odrębnie definiowane także w kolumnach tekstowych tabel. W takim przypadku gdy Collation jest CASE SENSITIVE  podczas przeszukiwania tych kolumn trzeba wpisywać szukane teksty takimi samymi literami, jak wcześniej zostały wprowadzone do tabel.

Collation ma w nazwie zazwyczaj skróty:

  • CI – Case Insesitive
  • CS – Case Sensitive
By Rafał Kraik in SQL

Aplikacja .NET C# korzystająca z danych w MS SQL Server cz.1

2013-08-21

W tym artykule pokażę, jak można z aplikacji w c# sięgać do bazy danych SQL. Artykuł jest częścią serii artykułów na ten temat prezentujących różne sposoby.

PRACA Z STRONGLY TYPED DATASET

Najpierw utwórz DataSet. Zakładam, że masz już serwer SQL i że na serwerze zdefiniowałeś odpowiednie tabele, może już nawet częściowo wypełniłeś je danymi.

Będąc w Visual Studio dodaj do swojego projektu DataSet:

strongly-data-set Czytaj dalej »