Oracle 数据库to_charc(trunc(sysdate,'mm')-1),'yyyymmdd')转化为SQLser语句

Oracle 数据库to_charc(trunc(sysdate,'mm')-1),'yyyymmdd')转化为SQLser语句,第1张

ORACLE中TRUNC是截取的函数

用在日期类型上,就是截取到日或时间

SELECT TRUNC(SYSDATE) FROM DUAL;

默认是截取系统日期到日,得到2012-12-19

比如值为"2012-12-19 14:30:50"的日期变量

TRUNC(SYSDATE)得到 2012-12-19 , 和TRUNC(SYSDATE,'DD')一样

TRUNC(SYSDATE,'YYYY'),得到2012-1-1

TRUNC(SYSDATE,'MM'),得到2012-12-1

TRUNC(SYSDATE,'DD'),得到2012-12-19

TRUNC(SYSDATE,'HH')或HH24,得到2012-12-19 14:00:00

TRUNC(SYSDATE,'MI'),得到2012-12-19 14:30:00

TRUNC(SYSDATE,'SS'),是会报错的,直接用SYSDATE不用TRUNC

另外说明一下,截取后得到的仍为date数据类型

在你的工作中是否会为了某个活动要随机取出一些符合条件的EMAIL或者手机号码用户 来颁发获奖通知或其它消息?如果是的话 可以用oracle里生成随机数的PL/SQL 目录文件名在 /ORACLE_HOME/rdbms/admin/dbmsrand sql 用之前先要在sys用户下编译:SQL>@/ORACLE_HOME/rdbms/admin/dbmsrand sql它实际是在sys用户下生成一个dbms_random程序包 同时生成公有同义词 并授权给所有数据库用户有执行的权限 使用dbms_random程序包 取出随机数据的方法 先创建一个唯一增长的序列号tmp_idcreate sequence tmp_id increment by start with maxvalue nocycle nocache; 然后创建一个临时表tmp_ 把符合本次活动条件的记录全部取出来 create table tmp_ as select tmp_id nextval as id email mobileno from 表名 where 条件;找到最大的id号 select max(id) from tmp_ ;假设为 设定一个生成随机数的种子execute dbms_random seed( );或者execute dbms_random seed(TO_CHAR(SYSDATE MM DD YYYY HH :MI:SS )); 调用随机数生成函数dbms_random value生成临时表tmp_ 假设随机取 个create table tmp_ as select trunc(dbms_random value( )) as id from tmp_ where rownum< ;[ 说明 dbms_random value( )是取 到 间的随机数 会有小数 trunc函数对随机数字取整 才能和临时表的整数ID字段相对应 注意 如果tmp_ 记录比较多( 万条以上) 也可以找一个约大于两百行的表(假如是tmp_ )来生成tmp_ create table tmp_ as select trunc(dbms_random value( )) as id from tmp_ where rownum<201; ]5 tmp_1和tmp_2相关联取得符合条件的200用户select t1mobileno,t1email from tmp_1 t1,tmp_2 t2 where t1id=t2id;[ 注意:如果tmp_1记录比较多(10万条以上),需要在id字段上建索引。tWWinGWiT]也可以输出到文本文件:set pagesize 300;spool /tmp/200txt;select t1mobileno,t1email from tmp_1 t1,tmp_2 t2 where t1id=t2id order by t1mobileno;spool off;6 用完后,删除临时表tmp_1、tmp_2和序列号tmp_id。 lishixinzhi/Article/program/Oracle/201311/17209

SQLSERVER没有类似ORACLE里的TRUNC函数,但是可以用cast函数进行转换处理。

在sql server2008中:

可以自定义函数实现trunc函数的功能:

CREATE FUNCTION trunc_date(@date DATETIME)

RETURNS DATETIME

AS

BEGIN

CAST(FLOOR( CAST( @date AS FLOAT ) )AS DATETIME)

END

用法:

select trunc_date(@SomeDate)

以上就是关于Oracle 数据库to_charc(trunc(sysdate,'mm')-1),'yyyymmdd')转化为SQLser语句全部的内容,包括:Oracle 数据库to_charc(trunc(sysdate,'mm')-1),'yyyymmdd')转化为SQLser语句、ORACLE里取随机数的几种具体的方法、SQLSERVER有类似ORACLE里的TRUNC函数的吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9427377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存