Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z datatime
krzysiekkurowski
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 13.02.2005

Ostrzeżenie: (10%)
X----


Witajcie mam problem w mojej bazie z polem datatime - data wyswietla sie z godzina a chcialem zeby tylko wyswietlala sie data probowalem ale niestety nie dam rady zmienic we wlasciwosciach kolumny na samo data.

Znalazlem w sieci komende sql do konwertowania to na sama date

  1. FROM thisTable
  2. WHERE convert (datetime, convert (varchar, datecol, 101), 101) = @yourdate


powiedzcie czy to jest prawidlowe i czy jak skonwertuje to pozniej nastepne dodane wpisy beda wyswietlane jako sama data?

jestem pocztatkujacy i nie wiem za wiele z gory dzieki
Go to the top of the page
+Quote Post
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


No niestety w SQL Server nie ma funkcji DATE() jak w MySQL
  1. DateAdd(day, datediff(day,0, MydateValue), 0)

  1. SELECT CONVERT(DATETIME, CONVERT(INT, GETDATE()))


Różnie ludzie z tym kombinują: SQL Server Date-Only from DATETIME
Go to the top of the page
+Quote Post
askone
post
Post #3





Grupa: Zarejestrowani
Postów: 654
Pomógł: 121
Dołączył: 27.10.2007
Skąd: Poznań, Łódź

Ostrzeżenie: (0%)
-----


Hej

Popatrz tutaj

Pozdrawiam
Go to the top of the page
+Quote Post
prachwal
post
Post #4





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 13.03.2009
Skąd: lublin

Ostrzeżenie: (0%)
-----


http://stackoverflow.com/questions/923295/...e-in-sql-server
Go to the top of the page
+Quote Post
mariuszhk
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 9.11.2009

Ostrzeżenie: (0%)
-----


convert(smalldatetime,convert(nvarchar(10),left(getdate(),10),120),120)
Nie mam 100% procentowej pewności że ten kod zadziała ale sens jest taki z getdate() czyli np '2009-11-9 00:00:00' ucinasz pierwsze 10 znaków (istotna jest tu 120 określa typ wyświetlania daty), a następnie znów konvertujesz na date. Wynik powinien być '2009-11-09 00:00:00'



pozdrawiam
Powód edycji: [Spawnm]:
Go to the top of the page
+Quote Post
Gapollo
post
Post #6





Grupa: Zarejestrowani
Postów: 33
Pomógł: 5
Dołączył: 2.11.2006
Skąd: 52.259 °N, 21.020 °E

Ostrzeżenie: (0%)
-----


Problem dotyczył czegoś innego przecież.
Otóż nie, jak sobie obetniesz godziny minuty i sekundy z bazy danych to nie będzie to miało wpływu na następne dodane rekordy. Jak chcesz wyświetlać samą datę to rób formatowanie po stronie aplikacji, ewentualnie w zapytaniu convert [w management studio kursor na słowie convert i klawisz F1 dużo wyjaśni, formatów datetime w MSSQL jest ponad 30]
BTW zaproponowane przez vokiel'a
  1. SELECT CONVERT(DATETIME, CONVERT(INT, GETDATE()))
nie zawsze działa, a dokładniej działa do południa. Dzieje się tak dlatego, że convert z datetime na int zaokrągla a nie obcina. Poprawnie w tej konwencji byłoby
  1. SELECT CONVERT(DATETIME, CONVERT(INT, CONVERT(FLOAT,GETDATE())))

a jak chcesz wyswietlać to w selekcie:
  1. SELECT convert(varchar(10),getdate(),120) -- lub 111 ze slashami zamiast myślników


Ten post edytował Gapollo 10.11.2009, 12:22:28
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 00:30