sql >> データベース >  >> RDS >> Mysql

MySQLは度、分、秒を小数に変換します

    素晴らしいライフハック:SEC_TO_TIME組み込みのMySQL関数を使用した逆問題解決(DMSの程度):

    CREATE FUNCTION `geocoords`(lon double, lat double) RETURNS varchar(24) CHARSET cp1251
        NO SQL
        DETERMINISTIC
    begin    
      declare alon double;
      declare alat double;
      declare slon varchar(12);
      declare slat varchar(12);
      set alon = abs(lon);
      set alat = abs(lat);
      set slon = TIME_FORMAT(SEC_TO_TIME(alon*3600), '%H°%i''%s"');
      set slat = TIME_FORMAT(SEC_TO_TIME(alat*3600), '%H°%i''%s"');
      if lon>0 then
        set slon = concat(slon, 'E');
      elseif lon<0 then  
        set slon = concat(slon, 'W');
      end if;  
      if lat>0 then
        set slat = concat(slat, 'N');
      elseif lat<0 then  
        set slat = concat(slat, 'S');
      end if;  
      return concat(slat, ' ', slon);
    end
    


    1. トリガーから呼び出されたストアドプロシージャの動的ステートメントの回避策

    2. OracleのNCHR()関数

    3. SQLServerのメッセージ8114「データ型varcharから数値への変換エラー」を修正しました

    4. MySQLとNHibernate。エラーを修正するには:列'ReservedWord'はテーブルReservedWordsに属していませんか?