Fecha en formato ANSI para SQL

Si trabajas con bases de datos es posible que en ocasiones tengas problemas cuando usas los formatos de fecha habituales como dd-mm-yyyy u otros, un mismo formato puede funcionar en un motor de base de datos y fallar en otro.

No obstante el formato Ansi es un estándar aceptado por todos los motores de base de datos, así que una buena idea es convertir tus fechas a ese formato cuando vayas a hacer operaciones de inserción actualización o vayas a usar fechas en tus condiciones de búsqueda.

Esta sencilla función te ayudará con ello.

        /// <summary>

        /// Convierte una fecha en formato Ansi

        /// </summary>

        /// <param name=”d“>fecha a convertir</param>

        /// <param name=”onlyDate“>Especifica si se quiere generar solo fecha o fecha+hora</param>

        /// <returns>la fecha convertida en formato Ansi</returns>

        public static string AnsiDate (DateTime d, bool onlyDate)

        {

            string _year = “”;

            string _month = “”;

            string _day = “”;

            string _hour = “”;

            string _minute = “”;

            string _second = “”;

            try

            {

                _year = Convert.ToString(d.Year);

                _month = Convert.ToString(d.Month);

                _day = Convert.ToString(d.Day);
 

                _hour = Convert.ToString(d.Hour);

                _minute = Convert.ToString(d.Minute);

                _second = Convert.ToString(d.Second);

                if (d.Month <= 9)

                {

                    _month = “0” + _month;

                }

                if (d.Day <= 9)

                {

                    _day = “0” + _day;

                }

                if (d.Hour <= 9)

                {

                    _hour = “0” + _hour;

                }

                if (d.Minute <= 9)

                {

                    _minute = “0” + _minute;

                }

                if (d.Second <= 9)

                {

                    _second = “0” + _second;

                }

                if (onlyDate)

                {

                    return _year + _month + _day;

                }

                else

                {

                    return _year + _month + _day + ” “ + _hour + “:” + _minute + “:” + _second;

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(“Error:” + Environment.NewLine + ex.Message, “AnsiDate”, MessageBoxButtons.OK, messageBoxIcon.Error);

                return null;

            }

        }

Para poner a prueba la función puedes implementar este código:

        private void fechaEnFormatoANSIToolStripMenuItem_Click(object sender, EventArgs e)

        {

            MessageBox.Show(MyClase.AnsiDate(DateTime.Now, true), “Test AnsiDate solo fecha”,

                                             MessageBoxButtons.OK, MessageBoxIcon.Information);

            MessageBox.Show(MyClase.AnsiDate(DateTime.Now, false), “Test AnsiDate fecha y hora”,

                                             MessageBoxButtons.OK, MessageBoxIcon.Information);

        }

Te mostrará la fecha y la hora actual en tu sistema en dos cuadros de diálogo.

Ponlo a prueba, piensa en cómo mejorarlo y comparte con nosotros tus progresos.

Scroll al inicio
Abrir chat
1
Hola
¿En qué podemos ayudarte?