Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

"Microsoft" platina "Microsoft SQL Server 2008 R2" 1 pakeitimų paketo (SP1) pataisymus kaip vieną atsisiunčiamą failą. Kadangi pataisos yra kumuliacinės, kiekviena nauja versija yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnės SQL serverio 2008 R2 1 pakeitimų paketo (SP1) pataisų leidimo.

Simptomai

Apsvarstykite šį scenarijų:

  • "Microsoft SQL Server 2008 R2" arba "Microsoft SQL Server 2012" lentelėje yra " DateTimeOffset " duomenų tipo stulpelis.

  • Galite sukurti indeksą, esantį stulpelyje DateTimeOffset .

  • Galite konvertuoti duomenų tipą DateTimeOffset į smalldatetime duomenų tipą naudodami funkciją cast arba CONVERT nenaudodami stiliaus argumento arba kai stiliaus argumento reikšmė yra 0.

  • Funkcijos cast arba CONVERT rezultatas yra naudojamas "Transact-SQL" užklausos filtre.

  • Vykdote Transact-SQL užklausą.

Tokiu atveju užklausa, kurią pateikia užklausa, yra neteisinga, nes filtras veikia netinkamai. Pavyzdžiui, Tarkime, kad DateTimeOffset stulpelis, pavadintas "date", turi šias reikšmes:

  • 2011-05-21 23:00:00 -01:00

  • 2011-05-21 23:00:00 +00:00

  • 2011-05-21 23:00:00 +01:00

Vykdote šią užklausą:

SELECT Date FROM TestTable WHERE CAST(Date AS smalldatetime)= '2011-05-21 23:00:00'

Užklausos rezultatas pateikia tik vieną eilutę. Tačiau laukiamas rezultatas turėtų pateikti visų trijų reikšmių eilutes.

Sprendimas

Kaupiamojo naujinimo informacija

SQL serverio 2012

Šios problemos pataisa pirmą kartą išleista 3 kaupiamąjį naujinimą, skirtą "SQL Server 2012". Daugiau informacijos apie šį kaupiamųjų naujinimų paketą rasite spustelėję toliau nurodytą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:

2723749 "SQL Server 2012" kaupiamojo naujinimo paketas 3Pastaba Kadangi komponavimo versijos yra kumuliacinės, kiekviena nauja pataisų versija yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio SQL serverio 2012 pataisų leidimo. "Microsoft" rekomenduoja apsvarstyti naujausių pataisų leidimų, kuriuose yra šios karštosios pataisos, taikymą. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:

2692828 "SQL Server 2012" komponavimo versijos, išleistos po "SQL Server" 2012 išleidimo SQL serverio 2012 karštąją pataisą turite taikyti "SQL Server 2012" įdiegčiai.

"SQL Server 2008 R2" 2 pakeitimų paketas

Ši problema buvo pirmą kartą išleista Kaupiamasis naujinimas 1 SQL serverio 2008 R2 Service Pack 2. Jei norite gauti daugiau informacijos apie tai, kaip gauti šį kaupiamąjį naujinimų paketą, spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:

2720425 Kaupiamojo naujinimo paketas 1, skirtas "SQL Server 2008 R2" 2 pakeitimų paketuiPastaba Kadangi komponavimo versijos yra kumuliacinės, kiekviena nauja pataisų versija yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnio SQL serverio 2008 R2 pataisų leidimo. Rekomenduojame apsvarstyti, kaip taikyti naujausią pataisų leidimą, kuriame yra šios karštosios pataisos. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:

2730301 SQL serverio 2008 R2 komponavimo versijos, išleistos po "SQL Server 2008 R2" 2 pakeitimų paketo išleidimo

SQL serverio 2008 R2 SP1

Šios problemos taisymas pirmą kartą buvo išleistas Kaupiamasis naujinimas 7. Jei norite gauti daugiau informacijos apie tai, kaip gauti šį kaupiamojo naujinimo paketą, skirtą "SQL Server 2008 R2" 1 pakeitimų paketui, spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:

2703282 Kaupiamojo naujinimo paketas 7, skirtas "SQL Server" 2008 R2 SP1Pastaba Kadangi komponavimo versijos yra kumuliacinės, kiekviena nauja pataisų versija yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo pridėtos prie ankstesnės SQL serverio 2008 R2 1 pakeitimų paketo pataisos leidimo. Rekomenduojame apsvarstyti, kaip taikyti naujausią pataisų leidimą, kuriame yra šios karštosios pataisos. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:

2567616 SQL serverio 2008 R2 stato, buvo paleistas po to, kai buvo išleistas SQL Server 2008 R2 SP1

Daugiau informacijos

Norėdami atkurti problemą, atlikite šiuos veiksmus:

  1. Vykdykite šią užklausą, kad sukurtumėte lentelę naudodami stulpelį DateTimeOffset ir įterptumėte kai kuriuos duomenis:CREATE TABLE #TestTimeZones (dto datetimeoffset(0)); GO INSERT INTO #TestTimeZones(dto) VALUES ('2011-05-21 23:00:00 -01:00'), ('2011-05-21 23:00:00 +00:00'), ('2011-05-21 23:00:00 +01:00'); GO

  2. Vykdykite šią užklausą ir galite matyti, kad pateiktuose rezultatuose teisingai nurodytos visos trys reikšmės:DECLARE @t smalldatetime = '2011-05-21 23:00:00' SELECT dto AS withoutIndex FROM #TestTimeZones WHERE CAST(dto AS smalldatetime)=@t;

  3. Vykdykite šią užklausą, kad sukurtumėte indeksą "DTO" stulpelyje ir pakartoti tą pačią užklausą:CREATE INDEX IX_testTimeZones_Dto ON #TestTimeZones(dto); GO -- Repeat the same query DECLARE @t smalldatetime = '2011-05-21 23:00:00' SELECT dto AS withIndex FROM #TestTimeZones WHERE CAST(dto A smalldatetime)=@t; GO

  4. Paleiskite užklausą atlikdami 2 veiksmą dar kartą. Šiuo metu užklausa pateikia tik vieną eilutę.

  5. Vykdykite šią užklausą, kad panaikintumėte indeksą ir jūsų sukurtą lentelę:DROP INDEX IX_testTimeZones_Dto ON #TestTimeZones; GO DROP TALBE #TestTimeZones; GO

Nuorodos

Daugiau informacijos apie funkcijas CAST ir CONVERT rasite apsilankę šioje MSDN svetainėje:

"SQL Server" funkcijos CAST ir CONVERT

Statusą

"Microsoft" patvirtino, kad tai yra "Microsoft" produktų, išvardytų skyriuje "taikoma", problema.

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×