Fuente: webbizarro.com
Me gusta compartir lo que aprendo, y aprender para compartir. «Learning is good but sharing is cool» (by LMB)
Thursday, October 3, 2013
Thursday, September 12, 2013
Cuántos Sábados y Domingos hay en un rango de fechas
Cuántos Sábados y Domingos hay en un rango de fechas (en vb.net)
La solución... seguramente muchas pero la mía ha sido Una función que recibe el rango de fechas (en mi caso solo una porque la trabajo con la fecha actual) que va preguntando si las fechas intermedias son o no sábado o domingo. Simple.
Public Function NotWorkingDays(ByVal dtFechaRegistro As Date) Dim dtFechaActual As Date = Now.Date dtFechaRegistro = dtFechaRegistro.Date Dim dias_no_laborales As Integer = 0 While dtFechaRegistro <= dtFechaActual If dtFechaRegistro.DayOfWeek = DayOfWeek.Saturday Or dtFechaRegistro.DayOfWeek = DayOfWeek.Sunday Then dias_no_laborales = dias_no_laborales + 1 End If dtFechaRegistro = dtFechaRegistro.AddDays(1) End While Return dias_no_laborales End Function
Friday, August 30, 2013
Datediff - convertir horas A decimal
Me pidieron saber el tiempo transcurrido en horas dada dos fechas. Fecha hora inicial en la que el Call Center recibió una llamada hasta la hora fecha en la que se dio respuesta a esa llamada.
Fecha Hora inicial: 30/08/2013 07:30:30
Fecha Hora final: 30/08/2013 08:00:00
Dado ese ejemplo, tenemos que transcurrieron 1.51 horas de tiempo. Pero resulta que cuando realizamos alguna división, la función Datediff omite la parte decimal y por tanto el cálculo ya no es exacto.
La siguiente línea de código muestra cómo hacerlo. Cómo convertir horas a decimal utilizando DATEDIFF
declare @start datetime set @start = '2013-08-29 07:00:00' declare @end datetime set @end = '2013-08-29 08:30:30' --getdate() 1,51 select cast(datediff(second, @start, @end) / 3600.0 as decimal (10, 2))
Fácil, ¿no?
Friday, June 28, 2013
Formato fecha "dia de mes del Año"
En Visual Basic .NET tenemos la función ToString() para dar formato a la fecha. Y el formato más común es "dd/MM/yyyy" pero y si quiero algo así como "28 de junio del 2013"?
Como sigue:
Now.Date.ToString("dd \de MMMM \del yyyy", CultureInfo.CreateSpecificCulture("es-ES"))
HaPPy CoDiNg =)
Consulta SQL entre 2 servidores distintos
Vaya, qué tragedia que me pasó hoy. Mas bien que no lo hice en el servidor de producción sino en el de test.
Hice un update sin where y afectó alrededor de 1500 registros jajaj. Haber grabado mi reacción de ese momento. Lo único que me consolaba era que se trataba de una copia de base de datos. Pero de todas maneras esa copia la estamos utilizando más de uno, no solo yo. Y pedir una nueva copia es re-dificil. Mucho trámite.
Lo que hice fue hacer un insert de los registros de la base de datos del servidor de producción. Le hice un truncate a la tabla y luego el insert. En realidad, hice el truncate a dos tablas y el insert a estas mismas dos ya que es un maestro-detalle.
Sin embargo, primero hay que agregar el servidor al que queremos acceder desde nuestro servidor. En este caso, yo desde el servidor de test al servidor de producción. Cómo lo hacemos?
EXEC sp_addlinkedsrvlogin 'NombreDeTuServidor', 'false', NULL, 'UsuarioConElQueTeConectas', 'ContrseniaDeEseUsuario'
Lo ejecutas y ahora estás apto para realizar tu consulta de esta manera:
insert into parametro (spar_id, spar_dom_id, spar_descripcion, iCreateBy, dtCreatedt, iUpdateBy, dtUpdatedt, iEstadoReg, iConcurrency_id, bActivo, bActivoMovil) (select * from BOSCZDB00.Boveda.dbo.parametro)
Nota para que puedas acceder a la tabla de otro servidor va de la siguiente manera:
SERVIDOR.BASE_DE_DATOS.ESQUEMA.TABLA
HaPPy CoDiNg!
Subscribe to:
Posts (Atom)