21 mayo 2012

SQL Server: Sentencia que de un dato de tipo datetime nos extrae el dia, el mes, el año, la hora, el minuto y el segundo

Aparentemente resultaba complicado, pero nada más lejos de la realidad. Con esta breve sentencia, saco en diferentes columnas el día, el mes, el año, la hora, el minuto y el segundo.

select dtpfecha, day(dtpfecha) "dia", month(dtpfecha)"mes", year(dtpfecha) "año", datepart(hour,dtpfecha)"hora", datepart(minute,dtpfecha) "minutos", datepart(second,dtpfecha) "segundos"
from [basededatos].[dbo].[tabla]

No me rompí mucho la cabeza, la solución la encontré aquí.
Aquí os dejo una foto del resultado al ejecutar la sentencia.



Saludos.

10 mayo 2012

Mejora del articulo hecho para C Sharp: Función que acorta una cifra decimal para sólo mostrar dos números. Y ahora además, pone puntos de separación

  Este código es una mejora del que escribí aquí. Pero esta vez, también puntua los miles.

   private string FormatearNumero(decimal cifra )
        {
             string strCifra = Convert.ToString(cifra);
             int dondeestalacoma = strCifra.IndexOf(',');
             string partedecimal="";
             string parteentera="";
             if (dondeestalacoma != -1)
             {
                 if (strCifra.Length > (dondeestalacoma + 2))
                 {
                     partedecimal = strCifra.Substring(dondeestalacoma + 1, 2);
                     parteentera = strCifra.Substring(0, dondeestalacoma);
                 }

             }
             else
             {
                 parteentera = Convert.ToString(cifra);
                 partedecimal = ",00";
               
             }

             /*colocación de los puntos de miles*/
            /*1º Creo un arraylist. En él se introcunen los numeros y los puntos de separación. Empiezo la extración desde el último dígito de la variable parte entera.
             2º En la var. nuevonumero voy metiendo los trozos que en el paso 1 metí en el arraylist
             3 Colocación de los primeros numeros de la cifra parteentera*/
            
             ArrayList diferentespartesnumero = new ArrayList();
             int numerodepuntos = 0;
             if (parteentera.Length > 3)
             {
                 for (int i = parteentera.Length; i > 3; i -= 3)
                 {
                     string trozo = parteentera.Substring(i - 3, 3);
                     diferentespartesnumero.Add(trozo);
                     diferentespartesnumero.Add(".");
                     numerodepuntos++;
                 }

                 string nuevonumero = "";

                 for (int j = diferentespartesnumero.Count - 1; j >= 0; j--)
                     nuevonumero += diferentespartesnumero[j].ToString();

                 int resto = (parteentera.Length + numerodepuntos) - nuevonumero.Length;
                 if (resto > 0 & resto <= 3)
                 {

                     string aux2 = parteentera.Substring(0, resto);
                     parteentera = aux2 + nuevonumero;
                 }
                 else
                     parteentera = nuevonumero.Substring(1, nuevonumero.Length - 1);

                 /**/
                 
             }
            return strCifra = parteentera + "," + partedecimal;
        }
   

04 mayo 2012

C#: Función que devuelve la primera letra de un string en mayuscula

Sencillo y eficaz código que devuelve un string con el primer caracter en mayuscula. Así por ejemplo, metiendo como parámetro el string víctor está loco, nos devolverá Víctor está loco.
 
        private string UppercaseFirst(string s)
        {
            // Check for empty string.
            if (string.IsNullOrEmpty(s))
            {
                return string.Empty;
            }
            // Return char and concat substring.
            return char.ToUpper(s[0]) + s.Substring(1);
        }
Saludos.