骚骚的sql

  • id补齐多少位:LPAD( CONCAT( user_id, '' )

  • 用户ID后四位:substring( LPAD( CONCAT( user_id, '' ), 10, '0' ), - 4 )

  • 时间戳后8位:substring( CONCAT( UNIX_TIMESTAMP( create_time ), '' ), 3 )

  • ID后四位+时间戳后8位:CONCAT(用户ID后四位 , 时间戳后8位)

  • 字符串转json并取值:JSON_EXTRACT( cast( buy_price_size AS json ), '$."44"' )

  • 当前日期:select CURRENT_DATE()

  • 当前时间:select CURRENT_TIME()

  • 当前完整时间:select CURRENT_TIMESTAMP()

  • 明天:select CURRENT_TIMESTAMP() + INTERVAL 1 day

  • 明年:select CURRENT_TIMESTAMP() + INTERVAL 1 year

  • 当前时间戳(精确度):REPLACE ( unix_timestamp( CURRENT_TIMESTAMP ( 3 )), '.', '' )。 精确到3位,最多6位3
    SELECT UNIX_TIMESTAMP(NOW(3)) * 1000;

  • 数字转化成字符:CONCAT( 11111, '' )

  • 字符串拼接:CONCAT('a', 'b')

  • 替换字段中的部分内容:replace (field_name,'from_str','to_str')

  • 时间戳转字符串:FROM_UNIXTIME(end_time/1000,'%Y-%m-%d %h:%i:%s')

  • 字符串的数字,怎么写可以用来排序

    •   -- 您可以使用 `CAST()` 函数将字符串转换为数字类型,例如:
        SELECT * FROM my_table ORDER BY CAST(my_column AS UNSIGNED) ASC;
        -- 这将按升序对 `my_column` 中的数字进行排序。如果您的字符串中包含小数,则可以使用 `DECIMAL` 代替 `UNSIGNED`。
      
  • 怎么把字符的数字,按照6位长度以0来补足

    •   -- 您可以使用 `LPAD()` 函数将数字转换为指定长度的字符串,并在左侧使用零进行填充。例如:
        SELECT LPAD(my_column, 6, '0') FROM my_table;
        -- 这将把 `my_column` 中的数字转换为长度为 6 的字符串,并在左侧使用零进行填充。如果 `my_column` 中的数字本身已经大于或等于 6 位数,则不会进行任何更改,仍然保持原样。
      
posted @ 2021-11-04 11:55  pywjh  阅读(79)  评论(0编辑  收藏  举报
回到顶部