Sunday, July 7, 2013

MYSQL get last working day(friday) of previous month

select LAST_DAY('2013-12-09' - INTERVAL 1 MONTH) -
INTERVAL (CASE WEEKDAY(LAST_DAY('2013-12-09' - INTERVAL 1 MONTH))
          WHEN 5 THEN 1
          WHEN 6 THEN 2
          ELSE 0 END) DAY

Saturday, July 6, 2013

Mysql find last friday last month---GOOD.

SET @GETLASTM=LAST_DAY('2013-08-01' - INTERVAL 1 MONTH);
SELECT DATE_FORMAT(LAST_DAY(@GETLASTM) - ((7 + WEEKDAY(LAST_DAY(@GETLASTM)) - 4) % 7), '%Y-%m-%d') last_friday;

Monday, May 27, 2013

MySQL query get first and last day of month


MySQL query get first and last day of month

# For current month
SELECT DATE_FORMAT(CURDATE(), '%Y-%m-01') AS `First Day Of Current Month`;

SELECT LAST_DAY(CURDATE()) AS `Last Day Of Current Month`;


# For previous month
SELECT DATE_FORMAT(CURDATE() - INTERVAL 1 MONTH, '%Y-%m-01') AS `First Day Of Previous Month`;

SELECT LAST_DAY(CURDATE() - INTERVAL 1 MONTH) AS `Last Day Of Previous Month`;

# For next month
SELECT DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH, '%Y-%m-01') AS `First Day Of Next Month`;

SELECT LAST_DAY(CURDATE() + INTERVAL 1 MONTH) AS `Last Day Of Next Month`; 

Thursday, March 21, 2013

Friday, March 15, 2013

mysql get last value of row

SELECT Name, Dt, Value
FROM (
    SELECT Name, Dt, Value, Name Name2
    FROM YourTable 
    UNION ALL
    SELECT '' Name, 'Last_Value', T.Value, T.Name Name2
    FROM YourTable T
       JOIN (
         SELECT Name, MAX(dt) MaxDt
         FROM YourTable
         GROUP BY Name
       ) T2 ON T.Name = T2.Name AND T.dt = T2.MaxDt
    ORDER BY Name2, Dt, Value
  ) t

mysql sum each group

CREATE TABLE YourTable (Name varchar(1),
                        dt datetime,
                        Value int);

INSERT INTO YourTable VALUES
('A','2013-01-01',3),
('A','2013-01-02',4),
('B','2013-01-04',2),
('B','2013-01-05',8);


SELECT Name, Dt, IF(Name='',summedTotal,Value) Value
FROM (

  SELECT @summedTotal:=IF(@prevRow=Name,@summedTotal+Value,Value) summedTotal,
    Name, Dt, Value, Name Name2,
    @prevRow:=Name
  FROM YourTable
    JOIN (SELECT @summedTotal:=0) t
  UNION ALL
  SELECT summedTotal, '' Name, 'Last_Value', T.Value, T.Name Name2, pr
  FROM (
      SELECT @summedTotal:=IF(@prevRow=Name,@summedTotal+Value,Value) summedTotal,
        Name, Dt, Value, Name Name2,
        @prevRow:=Name pr
      FROM YourTable
        JOIN (SELECT @summedTotal:=0) t
    ) T
    JOIN (
      SELECT Name, MAX(dt) MaxDt
      FROM YourTable
      GROUP BY Name
    ) T2 ON T.Name = T2.Name AND T.dt = T2.MaxDt
  ORDER BY Name2, Dt, Value
  ) t

Tuesday, February 19, 2013

Remove standy Linux


xset s off
xset s noblank
xset -dpms

to the ~/.X.d/xset file has worked for me.