nvarchar日期格式 比较大小怎么弄?

zwj8392008 2016-07-27 07:37:51
create table #A
(
模号 char(10),
物料编号 varchar(20),
物料名称 varchar(20),
单位 char(10),
数量 int,
当前时间 nvarchar(50)
)
insert into #A values ('A','KH140347G3-153','KH140347G3-153','件',13,'2016年7月27日15时52分52秒')
insert into #A values ('A','KH140347G3-154','KH140347G3-154','件',14,'2016年7月28日15时52分52秒')
insert into #A values ('A','KH140347G3-155','KH140347G3-155','件',15,'2016年7月29日15时52分52秒')
insert into #A values ('B','KH140347G3-156','KH140347G3-156','件',16,'2016年7月2日15时52分52秒')
insert into #A values ('B','KH140347G3-157','KH140347G3-157','件',17,'2016年7月3日15时52分52秒')
insert into #A values ('B','KH140347G3-158','KH140347G3-158','件',18,'2016年7月8日15时52分52秒')
insert into #A values ('C','KH140348G5-101','KH140348G5-101','件',13,'2016年7月10日15时52分52秒')
insert into #A values ('C','KH140348G5-102','KH140348G5-102','件',14,'2016年7月13日15时52分52秒')
insert into #A values ('C','KH140348G6-201','KH140348G6-201','件',15,'2016年7月15日15时52分52秒')
insert into #A values ('D','KH140348G6-202','KH140348G6-202','件',16,'2016年7月17日15时52分52秒')
insert into #A values ('D','KH140348G6-203','KH140348G6-203','件',17,'2016年7月27日15时52分52秒')
insert into #A values ('D','KH140348G6-204','KH140348G6-204','件',18,'2016年7月30日15时52分52秒')

SELECT * from #A
select 模号,物料编号,物料名称,单位,数量,replace(replace(replace(replace(replace(replace(当前时间,'年','-'),'月','-'),'日',' ' ),'时','-'),'分','-'),'秒','') 当前时间 from #A
select max(当前时间) from #A

想比较当前日期的大小

只弄出来这个。。。
...全文
227 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwj8392008 2016-07-28
  • 打赏
  • 举报
回复
引用 3 楼 kingtiy 的回复:
你replace() 函数替换时,分,秒的时候,需要替换成冒号(:) 才是正确的时间格式. 才可以转换为datetime类型再做比较了.
多谢 。低级失误
zwj8392008 2016-07-28
  • 打赏
  • 举报
回复
引用 4 楼 ap0405140 的回复:

select 模号,物料编号,物料名称,单位,数量,
       当前时间=cast(replace(replace(replace(replace(replace(replace(当前时间,'年','-'),'月','-'),'日',' ' ),'时',':'),'分',':'),'秒','') as datetime) 
from #A 
哦 ,懂了 ,看错 时分秒的 连接 应该是冒号。。。 失误 多谢大神的 指点
zwj8392008 2016-07-28
  • 打赏
  • 举报
回复
引用 4 楼 ap0405140 的回复:

select 模号,物料编号,物料名称,单位,数量,
       当前时间=cast(replace(replace(replace(replace(replace(replace(当前时间,'年','-'),'月','-'),'日',' ' ),'时',':'),'分',':'),'秒','') as datetime) 
from #A 
。。。为什么cast可以。。 而convert 不可以。。。
唐诗三百首 2016-07-27
  • 打赏
  • 举报
回复

select 模号,物料编号,物料名称,单位,数量,
       当前时间=cast(replace(replace(replace(replace(replace(replace(当前时间,'年','-'),'月','-'),'日',' ' ),'时',':'),'分',':'),'秒','') as datetime) 
from #A 
kingtiy 2016-07-27
  • 打赏
  • 举报
回复
你replace() 函数替换时,分,秒的时候,需要替换成冒号(:) 才是正确的时间格式. 才可以转换为datetime类型再做比较了.
zwj8392008 2016-07-27
  • 打赏
  • 举报
回复
引用 1 楼 kk185800961 的回复:
跟谁比? 将nvarchar 转成日期类型就可以比了。
nvarchar 的当前时间 相比 关键是 nvarchar 转换不成 datetime 显示错误超出范围
薛定谔的DBA 2016-07-27
  • 打赏
  • 举报
回复
跟谁比? 将nvarchar 转成日期类型就可以比了。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧