{"id":260,"date":"2007-05-03T22:04:58","date_gmt":"2007-05-03T21:04:58","guid":{"rendered":"http:\/\/soci.hu\/blog\/index.php\/2007\/05\/03\/datum-levagasa-tsql-ben\/"},"modified":"2007-05-03T22:04:58","modified_gmt":"2007-05-03T21:04:58","slug":"datum-levagasa-tsql-ben","status":"publish","type":"post","link":"https:\/\/soci.hu\/blog\/index.php\/2007\/05\/03\/datum-levagasa-tsql-ben\/","title":{"rendered":"D\u00e1tum lev\u00e1g\u00e1sa TSQL-ben"},"content":{"rendered":"<p>Egyik MSHU-s j\u00f3akar\u00f3m j\u00f3volt\u00e1b\u00f3l megkaptam a teljes Inside TSQL 2005 sorozatot, \u00e9s m\u00e9g j\u00f3 p\u00e1r egy\u00e9b k\u00f6nyvet is.<br \/>\nAz els\u0151 r\u00e9szen, a Storage Engine r\u00e9szen m\u00e1r t\u00falvagyok, sok \u00e9rdekes dolgot olvastam benne, amelyeket majd egyik kev\u00e9sb\u00e9 rohan\u00f3s pillanatomban \u00f6sszeszedek c\u00edmszavakban.<br \/>\nCsak egyet emeln\u00e9k ki. 2005-ben NEM a tranzakci\u00f3s logb\u00f3l \u00e1ll\u00edtj\u00e1k el\u0151 a triggerek sz\u00e1m\u00e1ra az inserted \u00e9s deleted t\u00e1bl\u00e1kat, hanem a snapshot isolationh\u00f6z kidolgozott row versioning elj\u00e1r\u00e1ssal. Na, ez pl. nekem \u00faj volt.<\/p>\n<p>No, amit viszont most szeretn\u00e9k bemutatni a TSQL Programing c. m\u00e1sodik k\u00f6tetb\u0151l, hogy egy id\u0151pontot is tartalmaz\u00f3 d\u00e1tumr\u00f3l hogyan lehet hat\u00e9konyan lev\u00e1gni az id\u0151 r\u00e9szt (ha m\u00e1r egyszer nincs rendes date \u00e9s time t\u00edpus):<\/p>\n<p>dateadd(d, 0, datediff(d, 0, getdate()))<\/p>\n<p>\u00dcgyes, ezt m\u00e9g nem l\u00e1ttam.<\/p>\n<p>\u00c9n ezt ismertem, ez is benne van a k\u00f6nyvben:<\/p>\n<p>cast(convert(varchar(8), getdate(), 112) as datetime)<\/p>\n<p>Ezzel viszont m\u00e1r sz\u00edvtam, mert itt ugye arra baz\u00edrozunk, hogy lev\u00e1g\u00f3dik az id\u0151 r\u00e9sz a varchar hossza miatt, ez viszont egyes esetekben kibor\u00edtja a szervert. Asszem indexelt, sz\u00e1m\u00edtott oszlopban akartam ezt haszn\u00e1lni, de nem engedte, a t\u00falcsordul\u00e1s miatt. Mellesleg az els\u0151 verzi\u00f3 szerintem sokkal gyorsabb.<\/p>\n<p>Nem \u00e1lltam meg, megm\u00e9rtem \u0151ket:<\/p>\n<p>[source:SQL]<br \/>\ndeclare @i int, @e int<br \/>\nset @i = 0<br \/>\nset @e = 1000000<\/p>\n<p>declare @start datetime<br \/>\ndeclare @end datetime<br \/>\ndeclare @d datetime<\/p>\n<p>set @start = getdate()<br \/>\nwhile(@i < @e)\nbegin\n --set @d = dateadd(d, 0, datediff(d, 0, getdate()))\n set @d = cast(convert(varchar(8), getdate(), 112) as datetime)\n set @i = @i + 1\nend\nset @end = getdate()\n\nselect datediff(ms, @start, @end)\n[\/source]\n\nAz els\u0151 verzi\u00f3 n\u00e1lam kb. 1300 ms alatt fut le, a m\u00e1sodik 2000 k\u00f6r\u00fcl. Nem \u00f3ri\u00e1si a k\u00fcl\u00f6nbs\u00e9g, de a stringes megold\u00e1s hib\u00e1s viselked\u00e9se miatt most m\u00e1r ink\u00e1bb az els\u0151t prefer\u00e1lom.\n\nVan jobb megold\u00e1s esetleg?\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Egyik MSHU-s j\u00f3akar\u00f3m j\u00f3volt\u00e1b\u00f3l megkaptam a teljes Inside TSQL 2005 sorozatot, \u00e9s m\u00e9g j\u00f3 p\u00e1r egy\u00e9b k\u00f6nyvet is. Az els\u0151 r\u00e9szen, a&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,4,30,21],"tags":[],"class_list":["post-260","post","type-post","status-publish","format-standard","hentry","category-adatbazisok","category-szakmai-elet","category-sql-server","category-sql-server-2005"],"_links":{"self":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=260"}],"version-history":[{"count":0,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/260\/revisions"}],"wp:attachment":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}