sql >> Database teknologi >  >> RDS >> Sqlserver

Konvertering af en numerisk værdi til dato og klokkeslæt

Din dato er faktisk en numerisk værdi (float eller heltal), gemt i en char-kolonne. Så du skal konvertere den til en numerisk værdi (i dette tilfælde til float ) først som:

select convert(datetime, CONVERT(float,date_column))

En værdi på 41547.5 vil resultere i:

`2013-10-02 12:00:00`

Stilargumentet, i dit tilfælde 6 er kun nødvendigt ved konvertering fra eller til char-typer. I dette tilfælde er det ikke nødvendigt og vil blive ignoreret.

NB:Floatværdien er antallet af dage siden 1900-01-01 .

for eksempel. select convert(datetime, CONVERT(float,9.0)) => 1900-01-10 00:00:00; det samme som select dateadd(day,9.0,'1900-01-01') ville.

Decimaldelen af ​​tallet er også lig med dage; altså 0.5 er en halv dag / 12 timer.

for eksempel. select convert(datetime, CONVERT(float,.5)) => 1900-01-01 12:00:00 . (Her giver vores sammenligning med dateadd ikke mening, da det kun handler om heltal i stedet for flydende).



  1. Opret forbindelse til Oracle-databasen ved hjælp af ROracle med tnsnames.ora på Mac OS 10.10

  2. Er der nogen fordel ved at oprette og indeksere en primærnøgle?

  3. Sender array som parameter til SQL 2005-lagret procedure

  4. Grupperet LIMIT i PostgreSQL:vis de første N rækker for hver gruppe?