精华内容
下载资源
问答
  • BD2字符串为'20090101'转换为日期类型'2009-01-01'的语句怎么写,只要日期,不要时间
  • 1.字符串转日期 ,to_date(exp1,exp2); exp1表示字符串,exp2便是字符串的格式。例如str='20180124':  to_date(str,'yyyymmdd');   2.由日期转为字符串则是, to_char(exp1,exp2),exp1表示格式为date...

    今天项目用到了对日期的格式转换,并且由于日期数据比较杂,存在null值和' ',所以需要对他们处理:

    1.字符串转日期 ,to_date(exp1,exp2); exp1表示字符串,exp2便是字符串的格式。例如str='20180124':

     to_date(str,'yyyymmdd');

     

    2.由日期转为字符串则是, to_char(exp1,exp2),exp1表示格式为date的日期,exp2表示要转为字符串的格式,例如由当前系统转为:2018-01-24 17:00:01

     to_char(sysdate,'yyyymmdd hh24:mi:ss');

     

    3.根据以上两种,当把字符串20180101转为字符串2018-01-01;

     to_char(to_date('20180101','yyyymmdd') ,'yyyy-mm-dd'));

     

    4.如果需要处理的数据中既有' '(空格) 又有 null,则可以对空值进行处理。

     4.1 nvl(exp1,exp2); 当exp1位null时,则返回exp2;

     4.2 nvl2(exp1,exp2,exp3);当exp1为null时,返回exp2,否则返回exp3;

    4.3 decode(exp1,exp2,exp3,exp4);如果exp1和exp2相等,则返回exp3,否则返回exp4;

    案例:把字符串日期20180101转为字符串2018-01-01(查询的数据有null和空格),如果查询结果为exp

    思路:如果为null,则转为' ' ,再用decode,如果为' ',则返回' ' ,否则转换格式进行返回。

    decode(nvl(exp,' '),' ',' ',to_char(to_date(exp,'yyyymmdd') ,'yyyy-mm-dd')));

    5.当然也可以使用字符串截取的方式:

    decode(nvl(exp,' '),' ',' ',substr(exp,1,4)||'-'||substr(exp,5,2)||'-'||substr(exp,7,2)) ;

     

     

     

     

     

     

    展开全文
  • SQL数据库字符串与时间相互转换

    千次阅读 2020-05-25 22:47:42
    SQL数据库字符串与时间相互转换,字符串转日期时间格式,日期时间格式转字符串格式。

    SQL数据库字符串与时间转换

    当前时间:now()

    时间转字符串: date_format(date,’%Y-%m-%d’)

      select date_format(now(), '%Y-%m-%d %H:%i:%s');  
    

    2019-04-18 15:39:16

    字符串转时间: str_to_date(date,’%Y-%m-%d’)

      select str_to_date('2016-09-09 15:43:28', '%Y-%m-%d %H:%i:%s');
    

    %Y:4位的年份
    %y:代表2为的年份
    %m:代表月, 格式为(01……12)
    %c:代表月, 格式为(1……12)
    %d:代表月份中的天数,格式为(00……31)
    %e:代表月份中的天数, 格式为(0……31)
    %H:代表小时,格式为(00……23)
    %k:代表 小时,格式为(0……23)
    %h: 代表小时,格式为(01……12)
    %I: 代表小时,格式为(01……12)
    %l :代表小时,格式为(1……12)
    %i: 代表分钟, 格式为(00……59)
    %r:代表 时间,格式为12 小时(hh:mm:ss [AP]M)
    %T:代表 时间,格式为24 小时(hh:mm:ss)
    %S:代表 秒,格式为(00……59)
    %s:代表 秒,格式为(00……59)

    sqlserver:
    当前时间:getdate()

    convert(目标类型[datatime/varchar],‘输入内容’[时间/字符串],格式);

    时间转字符串:

    select convert(varchar(100), GETDATE(), 101)
    04/06/2019

    select convert(varchar(100), GETDATE(), 11)
    19/04/06
    select convert(varchar(100), GETDATE(), 12)
    190406
    select convert(varchar(100), GETDATE(), 23)
    2019-04-06
    select convert(varchar(100), GETDATE(), 24)
    16:44:26
    select convert(varchar(100), GETDATE(), 102)
    2019.04.06
    select convert(varchar(100), GETDATE(), 111)
    2019/04/06
    select convert(varchar(100), GETDATE(), 112)
    20190406
    select convert(varchar(100), GETDATE(), 120)
    2019-04-06 16:48:02
    select convert(varchar(100), GETDATE(), 121)
    2019-04-06 16:48:12.267

    字符串转时间:

    select convert(datetime,‘11/1/2003’,101)
    2003-11-01 00:00:00.000

    select convert(date,‘11/1/2003’)
    2003-11-01

    展开全文
  • 数据库字符串函数,日期函数,数据类型转换CAST,convert) use student go create table yuangong ( code int, name varchar(20), sex varchar(20), age int, bumen varchar(20), ) insert ...

    数据库(字符串函数,日期函数,数据类型转换CAST,convert)

     

    use student

    go

     

    create table yuangong

    (

    code int,

    name varchar(20),

    sex varchar(20),

    age int,

    bumen varchar(20),

     

    )

     

    insert into  yuangong  values(1,'周数','男',27,'销售部')

    insert into  yuangong  values(1,'周的王','男',27,'销售部')

    insert into  yuangong  values(1,'地方','男',27,'销售部')

    insert into  yuangong  values(1,'周文王','男',27,'销售部')

    insert into  yuangong  values(1,'看王','男',27,'销售部')

    insert into  yuangong  values(1,'周王','男',36,'销售部')

     

    go

     

    Sp_renamedb    xxx , fff       --为数据库改名!xxx改成fff

    Alter table xinxi add  [int]  varchar(20)--  在xinxi 的表里添加int列,值类型是varchar(20).新添加的列不能设置  不为空!

    Alter table xinxi drop  column  [int]   --删除[int]列

    Update xinxi  set  nianling=26 where  fenshu between 80 and 100—修改。把分数80~100之间的人,年龄改为26。

    Select  distinct   name  from   xinxi –自动去除重复名字的信息!

    ################################################

    alter table yuangong add cid varchar(20)

     

    update yuangong set cid=370322198908120800

    ################################################

    --字符串函数

    --返回字符串的首字符ASCII编码

    select ASCII ('ame')  -—返回int值

    select ASCII(name)from yuangong   --注意应用格式

    select *from yuangong where ASCII (name)>200

    --将字符转化成对应ASCII代码

    select CHAR (100)

    select CHAR (age)from yuangong

    --查字符串,返回符合条件的首字母索引,索引从1开始,返回0代表没找到

    --(在C#中indexof索引从开始,返回-1代表没找到)

    select CHARINDEX ('efg','abcdefghijklmnopqrstuvwsyz')--此时显示5.表示‘efg’的从左向右第一个索引是5!

    select CHARINDEX ('199',cid) from yuangong --应用于表格的用法

     

    --字符串拼接

    select '1'+'abc'+'2'+'def'as 凭借   --执行,就会显示(凭借:1abc2def)

    --返回相似度

    select DIFFERENCE ('abcdefgh','abcdefgh')   --返回数字0~4,4代表完全相似!

    --从左向右截取字符

    select left ('abcdefg',3)--表示从左向右截取3位,显示abc

    select RIGHT ('abcdefg',3)--表示从右向左截取3位,显示efg

    --返回字符串长度

    select LEN(' a v    ') --返回. 后面的空格不算,前面和中间的都算!

    --全部小/大写

    select LOWER('ASDFGcvx')--显示asdfgcvx

    select UPPER ('abcdddc')--显示ABCDDDC

    --从左边去空格

    select LTRIM ('    34332aaa              ')

    --显示时,去除左面空格!显示:34332aaa

    select RTRIM ('                 3234     ')

     --显示时,去右边空格!显示:               3234

     

    --替换

    select REPLACE ('1234567890','456','abcd')

    --显示123abcd7890.(要替换的字符串,要替换的内容,修改后的内容)

    select REPLACE (cid,'606','103')from yuangong  --应用于表格中的格式

    -复制并粘贴

    select REPLICATE ('abc',3)--复制abc并粘贴3次

    --顺序翻转

    select REVERSE ('abcde')--显示edcba

    select REVERSE (name)from yuangong --在表格中应用格式

    --空格

    select 'a'+SPACE (99)+'b'  --拼接ab为了方便观察!个空格

    -截取数字

    select STR(123456.789012345,10,9)--10是包含.在内的总数字个数';9是小数点后保留的个数.以前面数字为主.

    --替换字符串

    select STUFF ('abcdefgh',4,2,'  hello  ')--4代表从左向右的第四个索引开始(从开始),2代表替换的字符个数。此时显示abc hello fgh

    -截取字符串

    select SUBSTRING('abcdefg',4,2)  --从指定第4个索引处开始,截取指定2个长度字符串.此时显示de

     

    --常用:大小写,翻转, charindex, substring, len

    #################################################################

     

     

    --日期时间数据类型及函数

    -给一个时间加上一段时间

    select  DATEADD (year,2,'2006-01-01')  --显示2008-01-01

    --求时间差(年,月,天,时,分……都行)

    select DATEDIFF (YEAR ,'2011-07-01','2014-07-01')--显示3年.

    select DATEDIFF (DAY,'2011-07-01','2014-02-03')--显示948天.

    --提取年,月,日,时,分,秒,星期等

    select DATENAME (weekday ,'2014-11-02')--显示'天'是.'月'是.'年'是.返回值是nvarchaer

    select DATEPART(WEEKDAY  ,'2014-11-02')--作用同上,返回值int

    select YEAR ('2014-11-02')--提取年:2014, month 月,day 天.注意格式.作用等同DATEPART

    select GETDATE()as 当前时间       --获取数据库当前时间!

     

    select ISDATE('2013-06-31')--判断日期格式是否正确,对:1,错:0.

     

     --常用ISDATE ,GETDATE ,DATEPART ,

     

     类型转换CASTCONVERT

    select CAST (123 as varchar(20))  --得出varchar型123 。

    select CAST (1.23 as int )        --得到int型1.

    select CAST (123 as decimal(10,2))--得出decimal型123.00.这里10表示显示数字总个数,2表示小数点后个数

    select CAST (12.3 as decimal(18,2))--得出12.30.

     

    select CONVERT (int,123.45)

    --用法与CAST相反!

     

    select name,(SUBSTRING(cid,7,4)+'年'+SUBSTRING(cid,11,2)

    +'年'+SUBSTRING(cid,13,2)+'月') as 生日 from yuangong

     字符串型数值和日期型数值须要   ‘ ’   ,int型数值型不用!

     ########################################

     

    转载于:https://www.cnblogs.com/huaze/p/4069532.html

    展开全文
  • Oracle 时间转字符串 to_char(date,format)select to_char(sysdata,'YYYY"年"MM"月"DD...字符串转时间 to_date(str,format)select to_date('2019-10-25 17:15:20','yyyy-MM-dd HH24:mi:ss') 字符串转时间 from du...

    Oracle

    • 时间转字符串 to_char(date,format)
      select to_char(sysdata,'YYYY"年"MM"月"DD"日"') 时间转字符串 from dual
      
    • 字符串转时间 to_date(str,format)
      select to_date('2019-10-25 17:15:20','yyyy-MM-dd HH24:mi:ss') 字符串转时间 from dual
      

    MySQL

    MySQL内置函数,在MySQL里面利用str_to_date() 把字符串转换为日期
    示例:分隔符一致,年月日要一致

    • 字符串转日期
      select str_to_date('2019-10-25 15:43:28','%Y-%m-%d %H:%i:%s');
      
    • 日期转字符串
      select DATE_FORMAT(SYSDATE(),'%Y年%m月%d日') MySQL日期转字符串 from DUAL;
      

    注:H大写和h小写的区别?
    H大写是指的是:24小时制;h小写是指的是12小时制;

    可以使用常用的格式集中的任何一个指定 DATETIME、DATE 和 TIMESTAMP 值

    • 一个 ‘YYYY-MM-DD HH:MM:SS’ 或 ‘YY-MM-DD HH:MM:SS’ 格式的字符串。
    • 一个“宽松”的语法是被允许的:以任何标点符号作为日期部分和时间部分中的定界符。
    • 例如,‘98-12-31 11:30:45’、‘98.12.31 1+30+45’、‘98/12/31 113045’ 和 ‘98@12@31 113045’ 均是等价的。
    • 一个 ‘YYYY-MM-DD’ 或 ‘YY-MM-DD’ 格式的字符串。这里,一个“宽松”的语法同样也是被允许的:例如,‘98.12.31’、‘98-12-31’、‘98/12/31’ 和 ‘98@12@31’ 是等价的。
    MySQL插入不区分格式,字符串都能自动转成日期型  2019.10.15 会变成2019-10-15
    
    insert into ceshi(userid,birth) values(3,'2019.10.15')
    
    展开全文
  • 时间转字符串 to_char(date,format) select to_char(sysdata,‘YYYY"年"MM"月"DD"日"’) 时间转字符串 from dual 字符串转时间 to_date(str,format) select to_date(‘2019-10-25 17:15:20’,‘yyyy-MM-dd HH24:mi:...
  • FORMAT(date_sub(now(), interval 1 day),'%Y%m') DATE_FORMAT(要操作的日期,'%Y%m')#日期转换成YYYYMM字符串的格式('%y%m'小y表示YYMM格式) DATE_FORMAT(,'%Y%m') TO_CHAR(日期,'YYYYMM')--日期转字符串 ...
  • mysql 字符串转日期

    万次阅读 2018-05-04 15:01:47
    在mysql做数据库迁移时,如果数据不过程序,纯sql操作,那么将字符串转为日期格式可以使用如下方式: SELECT DATE('2017-02-11') SELECT DATE('2017/02/11') SELECT STR_TO_DATE('2015/02/25','%Y/%m/%d') SELECT...
  • 平面文本中存在一列时间数据,格式为yyMMdd,需要导入数据库中,对应数据库中的字段类型为datetime,直接导入会出现如下错误: [OLE DB 目标 [248]] 错误: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误...
  • 时间转字符串 字符串转时间 数据库 查 当前时间 (select current_date) 数据库 查 时间段 转载于:https://www.cnblogs.com/liuqu/p/7576012.html
  • 1.字符串转日期: to_date(paramStr,'YYYYMMDDHH24MISS') to_date(paramStr,'yyyy-MM-DD') to_date(paramStr,'yyyy/mm/dd hh24:mi:ss') to_date(paramStr,'yyyy-MM-dd hh24:mi:ss') 2.日期转字符串 to_char...
  • sql server 字符串转日期格式

    万次阅读 2019-08-16 11:21:43
    MyBeN sql server 字符串转成日期格式 在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL...字符串转日期时间: convert(datetime,列名) 日期时间转字符串...
  • sqlserver数据库日期如何格式化-日期转换字符串 将当前时间格式化为【时:分:秒】格式 Select CONVERT(varchar(100), GETDATE(), 8) sqlserver数据库日期如何格式化-日期转换字符串 将当前日期时间格式化为【年-...
  • flex4 日期类型字符串转日期类型(string转Date)(转) mysql数据库中存储的日期类型通过PHP返回到flex端为字符串类型,这样在flex中进行处理时就必须要将字符串转化为Date类型。如果仅仅是 "年/月...
  • 是数据迁移,从mysql 到sqlserver时,会报’从字符串转换日期和/或时间时,转换失败’。网上查了很多方法 都不行。 最后发现是数据扥问题,也就是说mysql可以认0000-00-00 00:00:00的这个时间数据而sqlserver无法...
  • mysql数据库中存储的日期类型通过PHP返回到flex端为字符串类型,这样在flex中进行处理时就必须要将字符串转化为Date类型。如果仅仅是 "年/月/日" 的组合,而没有涉及到”时/分/秒“那么直接使用DateField的静态方法...
  • SQLSERVER 数据库日期转换字符串函数

    千次阅读 2013-06-16 11:25:59
    SqlServer里DateTime转字符串 Sql代码 Select CONVERT(varchar(100), GETDATE(), 8):14:53:14 Select CONVERT(varchar(100), GETDATE(), 9): 06 6 2012 2:53:27:953PM Select CONVERT(varchar(100), ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,725
精华内容 690
关键字:

数据库字符串转日期