viernes, 24 de agosto de 2012

Busqueda de fecha Mysql

Ahora si la forma más correcta de buscar una fecha en Mysql es la siguiente: Donde el date sirve para cortar la fecha y la comparación no la haga contra milisegundos, segundos, etc.
SELECT FechaTramite
          FROM
    tablaFechas
     WHERE
      DATE(FechaTramite) = str_to_date('31/01/2012', '%d/%m/%Y')

viernes, 17 de agosto de 2012

Código que puedes necesitar para un reporte dinamico en Mysql

Tablas temporales que se creen al vuelo.

CREATE TEMPORARY TABLE tuzo_report
SELECT d.id, d.name
FROM tuzos d
INNER JOIN legs l ON l.dog_id=d.id
INNER JOIN nails n ON n.leg_id=l.id
GROUP BY d.id
HAVING MIN(n.last_clipped) < DATE_SUB(NOW(), INTERVAL 1 MONTH);
 
Concatenar variables
 
select person_id, group_concat(hobbies separator ', ')
from peoples_hobbies group by person_id; 
 
SELECT GROUP_CONCAT(DISTINCT CONCAT("`",usuario,"`") SEPARATOR "+") 
INTO @sumaVertical
FROM X
Este caracter ` identifica las columnas aunque tengan espacios.

Pivotear Tablas.

 SELECT
        SUM(CASE WHEN Enero THEN ROUND(Enero,2) END)Enero,
        SUM(CASE WHEN Febrero THEN ROUND(Febrero,2) END)Febrero,
        SUM(CASE WHEN Marzo THEN ROUND(Marzo,2) END)Marzo,
        SUM(CASE WHEN Abril THEN ROUND(Abril,2) END)Abril,
        SUM(CASE WHEN Mayo THEN ROUND(Mayo,2) END)Mayo,
        SUM(CASE WHEN Junio THEN ROUND(Junio,2) END)Junio,
        SUM(CASE WHEN Julio THEN ROUND(Julio,2) END)Julio,
        SUM(CASE WHEN Agosto THEN ROUND(Agosto,2) END)Agosto,
        SUM(CASE WHEN Septiembre THEN ROUND(Septiembre,2) END)Septiembre,
        SUM(CASE WHEN Octubre THEN ROUND(Octubre,2) END)Octubre,
        SUM(CASE WHEN Noviembre THEN ROUND(Noviembre,2) END)Noviembre,
        SUM(CASE WHEN Diciembre THEN ROUND(Diciembre,2) END)Diciembre,
FROM meses

Aumentar los carateres de concatenamiento de la Sesion

SET SESSION group_concat_max_len = 1000000;

Sin Sesión tomado de stackoverflow. Thank you ZeWaren :).

CREATE TABLE some_table (
  field1 int(11) NOT NULL AUTO_INCREMENT,
  field2 varchar(10) NOT NULL,
  field3 varchar(10) NOT NULL,
  PRIMARY KEY (`field1`)
);
INSERT INTO `some_table` (field1, field2, field3) VALUES
(1, 'text one', 'foo'),
(2, 'text two', 'bar'),
(3, 'text three', 'data'),
(4, 'text four', 'magic');

SELECT resultFROM   (SELECT @result := '',
               (SELECT result
                FROM   (SELECT @result := CONCAT_WS(';', @result, field2) AS result,
                               LENGTH(@result)                            AS blength
                        FROM   some_table
                        ORDER  BY blength DESC
                        LIMIT  1) AS sub1) AS result) AS sub2;
 
Sistaxis WITH ROLLUP para sacar totales.
 
Ejecutar las cadenas dinamicas
 
  PREPARE stmt FROM @sqlX;/*El smt es la cadena con que arme el select y el sqlx el from*/
  o 
  PREPARE stmt;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;  
 

Obtener el texto dentro de una etiqueta option jquery

$("#idSelect  option:selected").text();

Entidades html formatear con jquery

Algunas veces es necesario trabajar con cadenas formateadas a html, pero dentro del script te regresa html entities, con este código sepuede formatear.

$('<textarea/>').html(shtml).val()

Plugins jquery Excel

Dejo estas dos páginas de dos excelentes plugins.

http://warpech.github.com/jquery-handsontable/

http://visop-dev.com/Project+jQuery.sheet

miércoles, 8 de agosto de 2012

Error hibernate No Dialect mapping for JDBC type: -1 mysql

Pues este error me salía aunque marca algo de configuración no lo es siempre, lo que pasa que los campos que estaba mapeando en Mysql eran tipo Text, lo resolví de la siguiente forma. hibernate No Dialect mapping for JDBC type: -1 mysql
 String query="SELECT * FROM tabla";

      List<ConflictoDetalle> listaConflictoDetalle=getSession().createSQLQuery(query).addScalar("campo1", Hibernate.STRING)
    .addScalar("campo2",Hibernate.STRING)
    .addScalar("campo3",Hibernate.STRING)
    .addScalar("campo4",Hibernate.STRING)
    .setResultTransformer(Transformers.aliasToBean(ClaseVO.class)).list();