zoukankan      html  css  js  c++  java
  • Oracle数据库to_date()和to_char()的相关

    select * from T_A a where a.begintime=to_date('2013-1-1','yyyy-mm-dd');

    select * from T_A a where to_char(a.begintime,'yyyy-mm-dd')='2013-1-1';

    查询结果是一样的.

    区别在于 查询的 处理步骤不一样.

    select * from T_A a where a.begintime=to_date('2013-1-1','yyyy-mm-dd');
    是先把 '2013-1-1' 这个字符串, 转换为日期格式, 然后去和数据库里面做比较.
    如果有 1000 行数据, 那么操作就是
    1次 字符转换为 日期, 1000 次日期比较。

    select * from T_A a where to_char(a.begintime,'yyyy-mm-dd')='2013-1-1';
    是把数据库里面的每一行的 begintime, 转换为 字符格式, 然后去和数据库里面做比较。
    如果有 1000 行数据, 那么操作就是
    1000次 日期转换为字符, 1000 次字符串比较。
     
    追问
    那第二种一般用在什么情况下啊,貌似很影响程序的性能啊
     
    追答
    所以 一般不推荐用 第二种 方法啊.
     
    追问
    它总有存在的道理吧,一般会因为什么这么用呢


    转自:https://zhidao.baidu.com/question/528644264.html
  • 相关阅读:
    数据库连接池
    一致性hash
    java 集合大家族
    linkedlist
    HashMap
    hashcode
    Job 逻辑执行图
    CDN
    网站缓存
    Mysql临时文件目录控制
  • 原文地址:https://www.cnblogs.com/leonlee/p/6042441.html
Copyright © 2011-2022 走看看