<\/HEAD>
Como administrador GIS, es muy fácil agregar muchos y muchos campos a una clase de entidad y aún más fácil pensar ingenuamente que la gente los va a llenar o editar. Un tema común para mí son los campos de fecha. Tenemos fecha de edición, fecha de creación, FGDC fecha de edición y creación, año... bla bla bla.<\/P>
<\/P>
Ojalá hubiera solo uno, o incluso ningún, compromiso para que los editores tengan que pensar en fechas y que la base de datos simplemente... lo manejara.<\/P>
<\/P>
Esto puede ser así. Con un trigger de base de datos. Comencemos con las fechas FGDC. Si estás implementando alguna forma de metadatos a nivel de entidad, o alguna minería de datos que etiqueta otro elemento de metadatos con fuente FGDC, fecha de creación o edición pero tienes habilitado el seguimiento de editores, no hay razón por la cual también debas llenar la columna FGDC[whatever]DATE.<\/P>
<\/P>
CREATE TRIGGER [dbo].[SOMETABLE_DATE]
ON [dbo].[SOMETABLE]
AFTER INSERT, UPDATE NOT FOR REPLICATION
AS BEGIN
SET NOCOUNT ON;
UPDATE [dbo].[SOMETABLE]
SET
SRCDATEFGDC = (convert(varchar(8), SOURCEDATE, 112)),
CREATEDATEFGDC = (convert(varchar(8), CREATEDATE, 112)),
EDITDATEFGDC = (convert(varchar(8), EDITDATE, 112))
END
GO<\/PRE><\/P>Aquí estamos tomando los valores EDITDATE y CREATE date, que son sql<\/P>datetime(2)<\/PRE>y los convertimos a un formato de cadena como yyyymmdd. El 112 es lo que controla el formato de salida. Consulta CAST and CONVERT (Transact-SQL)<\/A> para una lista completa de formatos de conversión de fechas.<\/P><\/P>
Además, el usuario también está seleccionando una fecha fuente en este caso que puede ser diferente a la fecha de creación y esa también se convierte.<\/P>
<\/P>
Si tienes una columna de año también puedes<\/P>
<\/P>
YEAR = CASE WHEN SOURCEDATE IS NULL THEN NULL ELSE YEAR(SOURCEDATE) END<\/PRE><\/P>con manejo de valores nulos incluido.<\/P><\/P>Si tienes el seguimiento de editores deshabilitado por alguna razón (a menudo causa problemas con Collector for ArcGIS) podrías poner una restricción por defecto en tu(s) columna(s) de fecha como<\/P>getdate()<\/PRE>.<\/P><\/P>Este es un blog personal y no recomienda, respalda ni apoya los métodos descritos arriba. La alteración de datos usando SQL fuera del stack de software ESRI, por supuesto, no está soportada y no debe aplicarse a una base de datos en producción sin un entendimiento completo y un plan de recuperación ante desastres.<\/EM><\/P><\/BODY><\/HTML>