1 message in com.mysql.lists.mysql-esIndices y funciones de fecha| From | Sent On | Attachments |
|---|---|---|
| Mauricio Tellez | 09 Oct 2007 09:59 |
| Subject: | Indices y funciones de fecha![]() |
|---|---|
| From: | Mauricio Tellez (mtel...@prodigy.net.mx) |
| Date: | 10/09/2007 09:59:31 AM |
| List: | com.mysql.lists.mysql-es |
Que tal, tengo una tabla con la siguiente estructura:
CREATE TABLE `archivos_cargados` ( `idArchivoCargado` int(10) unsigned NOT NULL auto_increment, `idSucursal` int(10) unsigned NOT NULL, `nombreArchivo` char(12) collate utf8_spanish_ci NOT NULL, `fechaTransacciones` date NOT NULL, `fechaCarga` date NOT NULL, PRIMARY KEY (`idArchivoCargado`), UNIQUE KEY `unique_nombreArchivo` (`nombreArchivo`), KEY `index_sucursal` USING BTREE (`idSucursal`,`fechaTransacciones`) )
basicamente en esta tabla tengo un registro de archivos por sucursal, y principalmente la uso para saber en que fechas la sucursal "X" registró un archivo en el sistema, por eso el indice "index_sucursal". Hasta aqui todo va bien, pero ahora necesito hacer una consulta que pasandole una fecha, supongamos '2007-10-09' (martes nueve de octubre del 2007), me regrese el mas proximo martes nueve anterior, por lo que construi la siguiente consulta:
select distinct fechaTransacciones from archivos_cargados where idSucursal=5 and dayofweek(fechaTransacciones) = dayofweek('2007-10-09') and dayofmonth(fechaTransacciones) = dayofmonth('2007-10-09') order by fechaTransacciones limit 1
mi pregunta es la siguiente: hay alguna manera mas eficiente de realizar esto? gracias de antemano...
-- Mauricio Tellez




