Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 10825|Vastaus: 0

[Lähde] Käytännön SQL-lause: päivämäärän estimointi

[Kopioi linkki]
Julkaistu 26.11.2014 15.53.01 | | |

ILMOITA @dt päivämääräaika
ASETA @dt=GETDATE()

DEKLARARE @number älykkyys
SETTI @number=3

--1. Määritä vuoden ensimmäisen tai viimeisen päivän päivämäärä
--A. Vuoden ensimmäinen päivä
VALITSE Co nVERT(char(5),@dt,120)+ '1-1'

--B. Vuoden viimeinen päivä
SELECT Co nVERT(char(5),@dt,120)+ '12-31'


--2. Neljänneksen ensimmäinen tai viimeinen päivä, jolloin mainittu päivämäärä sijaitsee
--A. Neljänneksen ensimmäinen päivä
SELECT Co nVERT(datetime,
Co nVERT(hahmo(8),
DATEADD(Mo nth,
DATEPART(neljännes,@dt)*3-kuukautta nth(@dt)-2,
@dt),
120)+ '1 ')

--B. Neljänneksen viimeinen päivä (TAPAUSRATKAISU)
SELECT Co nVERT(datetime,
Co nVERT(hahmo(8),
DATEADD(Mo nth,
DATEPART(neljännes,@dt)*3 kuukautta nth(@dt),
@dt),
120)
+CASE WHEN DATEPART (Quarter,@dt) in(1,4)
SITTEN '31 'ELSE '30' LOPPU)

--C. Neljänneksen viimeinen päivä (suora työntöalgoritmi)
VALITSE DATEADD(Päivä, -1,
Co nVERT(hahmo(8),
DATEADD(Mo nth,
1+DATEPART(Quarter,@dt)*3-Mo nth(@dt),
@dt),
120)+ '1 ')


--3. Kuukauden ensimmäinen tai viimeinen päivä, jolloin mainittu päivämäärä sijaitsee
--A. Kuukauden ensimmäinen päivä
VALITSE Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1')

--B. Kuukauden viimeinen päivä
VALITSE DATEADD(Päivä,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1')

--C. Kuukauden viimeinen päivä (helppokäyttöinen väärä menetelmä)
VALITSE DATEADD(Mo nth,1,DATEADD(Päivä,-DAY(@dt),@dt))


--4. Mikä tahansa viikonpäivä, jolloin määritelty päivämäärä sijaitsee
VALITSE DATEADD(Päivä,@number-DATEPART(Arkipäivä,@dt),@dt)


--5. Mikä tahansa viikonpäivä, jolloin mainittu päivämäärä sijaitsee
--A.  Sunnuntai on viikon ensimmäinen päivä
VALITSE DATEADD(Päivä,@number-(DATEPART(Arkipäivä,@dt)+@@DATEFIRST-1)%7,@dt)

--B.  Maanantai on viikon ensimmäinen päivä
VALITSE DATEADD(Päivä,@number-(DATEPART(Arkipäivä,@dt)+@@DATEFIRST-2)%7-1,@dt)






Edellinen:Indeksin käyttöongelma, kun sqlserver käsittelee esimerkiksi '%keyword%'
Seuraava:ORACLE 11g Uudet ominaisuudet – Sallii DDL-lukkojen odottaa DML-lukkoja
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com