none
Conversion de fechas RRS feed

  • Pregunta

  • Saludos

    me he devanado el seso y no lo consigo;

       la idea es que tomo la fecha del sistema y la presento en este formato :  "dd/mm/yyyy",  lo cual muestra sin ningún problema en la caja de texto.

       pero  mi pregunta es es como puedo hacer para que yo pueda preguntar un SP  con este formato "dd/mm/yyyy", me pueda responder con las filas , por que en la tabla se almacenan con este formato 'yyyy/mm/dd', he tratado ccon este pequeño script pero no funciona:

    ALTER procedure [dbo].[SP_Sel_Ctrl_Turno]
    @FechTur   datetime,
    @IdTur     int
    As
     Begin
     SELECT IdOper, Fecha_Uso, IdTurno,
            IdMaq_1, P1M1, P2M1, P3M1, P4M1, P5M1, Descrip1,
            IdMaq_2, P1M2, P2M2, P3M2, P4M2, P5M2, Descrip2,
            IdMaq_3, P1M3, P2M3, P3M3, P4M3, P5M3, Descrip3,
            HeRevisado, FechaRevisado
     FROM   Control_Turno
     WHERE  (Fecha_Uso = CONVERT(DATETIME, @FechTur, 102)) AND (IdTurno = @IdTur)
    End

    Gracias

    jueves, 12 de noviembre de 2020 20:39

Respuestas

Todas las respuestas

  • Solucionado, gracias
    • Marcado como respuesta Rodrigo Menares jueves, 12 de noviembre de 2020 21:45
    jueves, 12 de noviembre de 2020 21:45
  • Te paso un script que uso mucho cuando tengo problemas con fechas:

    -------------------------------------------------------------------------------------

    --------------------------------- CONVERSIONES FECHAS -------------------------------
    -------------------------------------------------------------------------------------

    -- Convert para enlotar
    convert(datetime,'2014-02-02T00:00:00.000',126),


    ------ QUITAR MILISEGUNDOS
    declare @fecha datetime
    set @fecha = CONVERT(DATETIME, '2008-07-15 12:17:48.123', 102)
    select @fecha , DATEADD(MILLISECOND, -DATEPART(MILLISECOND , @fecha ) , @fecha)

    ----- QUITAR SEGUNDOS
    -- El tipo de dato smalldatetime llega solo hasta minutos 
    select @fecha , convert(smalldatetime,@fecha)



    /* Conversion Fechas*/
    declare @fdes as datetime
    set @fdes=convert(datetime,'2008-04-01T00:00:00.000',126)
    select @fdes

    /*Quitar horas y minutos*/
    declare @date as datetime
    set @date=getdate()
    select convert(datetime,left(convert(nvarchar(30),@date,126),10)+'T00:00:00.000',126)

    -- hora
    select CONVERT(NVARCHAR(8), getdate(), 114) 

    -- Fecha en formato iso
    select CONVERT(NVARCHAR(8), getdate(), 114) 



    /* Conversion Fechas*/
    declare @fdes as datetime
    set @fdes=convert(datetime,'01-15-2018',126)
    select @fdes


    --- Tipos de conversion
    Execute the following T-SQL scripts in Microsoft SQL Server Management Studio (SSMS) Query Editor to demonstrate T-SQL CONVERT and CAST functions in transforming string SQL date formats, string time & string datetime data to datetime data type. Practical examples for T-SQL DATE / DATETIME functions.

    -- SQL Server string to date / datetime conversion - datetime string format sql server

    -- MSSQL string to datetime conversion - convert char to date - convert varchar to date

    -- Subtract 100 from style number (format) for yy instead yyyy (or ccyy with century)

    SELECT convert(datetime, 'Oct 23 2012 11:01AM', 100) -- mon dd yyyy hh:mmAM (or PM)
    SELECT convert(datetime, 'Oct 23 2012 11:01AM') -- 2012-10-23 11:01:00.000 

    -- Without century (yy) string date conversion - convert string to datetime function
    SELECT convert(datetime, 'Oct 23 12 11:01AM', 0) -- mon dd yy hh:mmAM (or PM)
    SELECT convert(datetime, 'Oct 23 12 11:01AM') -- 2012-10-23 11:01:00.000 

    -- Convert string to datetime sql - convert string to date sql - sql dates format
    -- T-SQL convert string to datetime - SQL Server convert string to date

    SELECT convert(datetime, '10/23/2016', 101) -- mm/dd/yyyy
    SELECT convert(datetime, '2016.10.23', 102) -- yyyy.mm.dd ANSI date with century
    SELECT convert(datetime, '23/10/2016', 103) -- dd/mm/yyyy
    SELECT convert(datetime, '23.10.2016', 104) -- dd.mm.yyyy
    SELECT convert(datetime, '23-10-2016', 105) -- dd-mm-yyyy

    -- mon types are nondeterministic conversions, dependent on language setting
    SELECT convert(datetime, '23 OCT 2016', 106) -- dd mon yyyy
    SELECT convert(datetime, 'Oct 23, 2016', 107) -- mon dd, yyyy
    -- 2016-10-23 00:00:00.000
    SELECT convert(datetime, '20:10:44', 108) -- hh:mm:ss
    -- 1900-01-01 20:10:44.000 

    -- mon dd yyyy hh:mm:ss:mmmAM (or PM) - sql time format - SQL Server datetime format
    SELECT convert(datetime, 'Oct 23 2016 11:02:44:013AM', 109)
    -- 2016-10-23 11:02:44.013

    SELECT convert(datetime, '10-23-2016', 110) -- mm-dd-yyyy
    SELECT convert(datetime, '2016/10/23', 111) -- yyyy/mm/dd
    -- YYYYMMDD ISO date format works at any language setting - international standard

    SELECT convert(datetime, '20161023')
    SELECT convert(datetime, '20161023', 112) -- ISO yyyymmdd
    -- 2016-10-23 00:00:00.000

    SELECT convert(datetime, '23 Oct 2016 11:02:07:577', 113) -- dd mon yyyy hh:mm:ss:mmm
    -- 2016-10-23 11:02:07.577

    SELECT convert(datetime, '20:10:25:300', 114) -- hh:mm:ss:mmm(24h)
    -- 1900-01-01 20:10:25.300

    SELECT convert(datetime, '2016-10-23 20:44:11', 120) -- yyyy-mm-dd hh:mm:ss(24h)
    -- 2016-10-23 20:44:11.000

    SELECT convert(datetime, '2016-10-23 20:44:11.500', 121) -- yyyy-mm-dd hh:mm:ss.mmm
    -- 2016-10-23 20:44:11.500

    -- Style 126 is ISO 8601 format: international standard - works with any language setting

    SELECT convert(datetime, '2008-10-23T18:52:47.513', 126) -- yyyy-mm-ddThh:mm:ss(.mmm)
    -- 2008-10-23 18:52:47.513

    SELECT convert(datetime, N'23 شوال 1429  6:52:47:513PM', 130) -- Islamic/Hijri date
    SELECT convert(datetime, '23/10/1429  6:52:47:513PM',    131) -- Islamic/Hijri date
     
    -- Convert DDMMYYYY format to datetime - sql server to date / datetime
    SELECT convert(datetime, STUFF(STUFF('31012016',3,0,'-'),6,0,'-'), 105)
    -- 2016-01-31 00:00:00.000

    -- SQL Server T-SQL string to datetime conversion without century - some exceptions
    -- nondeterministic means language setting dependent such as Mar/Mär/mars/márc
    SELECT convert(datetime, 'Oct 23 16 11:02:44AM') -- Default
    SELECT convert(datetime, '10/23/16', 1) -- mm/dd/yy U.S.
    SELECT convert(datetime, '16.10.23', 2) -- yy.mm.dd ANSI
    SELECT convert(datetime, '23/10/16', 3) -- dd/mm/yy UK/FR
    SELECT convert(datetime, '23.10.16', 4) -- dd.mm.yy German
    SELECT convert(datetime, '23-10-16', 5) -- dd-mm-yy Italian
    SELECT convert(datetime, '23 OCT 16', 6) -- dd mon yy non-det.
    SELECT convert(datetime, 'Oct 23, 16', 7) -- mon dd, yy non-det.
    SELECT convert(datetime, '20:10:44', 8) -- hh:mm:ss
    SELECT convert(datetime, 'Oct 23 16 11:02:44:013AM', 9) -- Default with msec
    SELECT convert(datetime, '10-23-16', 10) -- mm-dd-yy U.S.
    SELECT convert(datetime, '16/10/23', 11) -- yy/mm/dd Japan
    SELECT convert(datetime, '161023', 12) -- yymmdd ISO
    SELECT convert(datetime, '23 Oct 16 11:02:07:577', 13) -- dd mon yy hh:mm:ss:mmm EU dflt
    SELECT convert(datetime, '20:10:25:300', 14) -- hh:mm:ss:mmm(24h)
    SELECT convert(datetime, '2016-10-23 20:44:11',20) -- yyyy-mm-dd hh:mm:ss(24h) ODBC can.
    SELECT convert(datetime, '2016-10-23 20:44:11.500', 21)-- yyyy-mm-dd hh:mm:ss.mmm ODBC

    lunes, 16 de noviembre de 2020 16:04