sql server中datetime的格式问题 select convert(varchar,getdate(),109)--结果08 8 2004 9:56:04:437PM 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个结果可以存放在datetime类型的字段里面吗? 从字符串转换到datetime的时候报错 1: select convert(varchar(2),getdate(),109)+'/'+substring(convert(varchar(10),getdate(),120),9,2)++'/'+convert(varchar(4),getdate(),120)+' '+substring(convert(varchar,getdate(),120),12,8)+' '+right(convert(varchar,getdate(),109),2)--运行结果08/08/2004 22:06:11 PM2:select convert(varchar(2),getdate(),109)+'/'+substring(convert(varchar(10),getdate(),120),9,2)++'/'+convert(varchar(4),getdate(),120)+' '+ substring(convert(varchar,getdate(),120),12,8)+' '+case when right(convert(varchar,getdate(),109),2)='PM' then '下午' else '上午' end--结果08/08/2004 22:09:23 下午 你要的那种格式没有现成的,只能转换,当然你存到数据库的是datetime,smalldatetime查询的时候转换成字符串就可以了。把我写的在查询分析器里运行一下就看到效果了 to 小二:我在看程序的时候,看到这么一个函数,TO_Date( '01/23/2003 12:00:00 上午', 'MM/DD/YYYY HH:MI:SS AM'),sql server中应该没有的,是个自定义函数,你见过吗,能猜出它大概是作什么用的吗? 你可能没有明白我的意思,我在看程序的时候,看到to_date这个函数,在sql中找不到,所以就在自定义函数中自己写了一个,是想把那个已知的时间01/23/2003 12:00:00 上午insert到数据库中的字段类型为datetime的字段中,能否实现? 你要知道,在sql中,datetime存储的格式select 当前时间=getdate()--结果当前时间 ------------------------------------------------------ 2004-08-09 08:04:29.390我觉得你可以写个函数,专门用来将格式换为你所要的格式(查询显示)如果你想把'01/23/2003 12:00:00 上午'这样的格式完全放到datetime字段里,应该是不行。 也就是说datetime类型的字段没有这种时间格式那,我只能将字段格式设置诚varchar了,这样就没问题谢谢你的回复 如果你要存到数据库里这种格式,只能是字符型了。但是我觉得你没有必要这样做吧,为什么非要存这种格式呢,你select时拿出你要的格式就ok了吧,也许你有特殊需求,呵呵 我也不知道是什么要求,这是帮别人作的一个用asp实现将*.sql导入数据库的程序,他给出的数据库中那个字段的类型就是datetime,*.sql中的insert语句中就有一个to_date('01/23/2003 12:00:00 上午', 'MM/DD/YYYY HH:MI:SS AM'),我不知道是作什么用的啊,开始执行的时候,就说不可识别的函数,于是自己就写了一个自定义函数,就是将'01/23/2003 12:00:00 上午'直接insert到数据库中,用的是varchar,所以上来问问能不能用datetime,如果这样不是更好了吗。(注:那个函数要实现的功能我也不清楚,是我自己杜撰出来的,没办法找不到人啦) select convert(varchar,getdate(),9) SQL语句? 如何求得两行数据的乘积 求一简单SQL语句! 服务器故障,请高手帮忙 高手帮忙! 一个数据库的db_owner如何为这个数据库添加新的登陆用户喝密码并指定对所有表有select权限? 我这sql语句错在哪??怎么改? SqlServer无法启动的问题,100分! Sql Server 2000 vb和sql server的问题 bcp问题? 用char或varchar型长为10如果我只存了4个字节那么是不是也占用10个字节的长度?
select convert(varchar(2),getdate(),109)+'/'+substring(convert(varchar(10),getdate(),120),9,2)+
+'/'+convert(varchar(4),getdate(),120)+' '+substring(convert(varchar,getdate(),120),12,8)+' '+right(convert(varchar,getdate(),109),2)--运行结果
08/08/2004 22:06:11 PM2:
select convert(varchar(2),getdate(),109)+'/'+substring(convert(varchar(10),getdate(),120),9,2)+
+'/'+convert(varchar(4),getdate(),120)+' '+ substring(convert(varchar,getdate(),120),12,8)+' '+case when right(convert(varchar,getdate(),109),2)='PM' then '下午' else '上午' end
--结果
08/08/2004 22:09:23 下午
查询的时候转换成字符串就可以了。把我写的在查询分析器里运行一下就看到效果了
select 当前时间=getdate()--结果
当前时间
------------------------------------------------------
2004-08-09 08:04:29.390我觉得你可以写个函数,专门用来将格式换为你所要的格式(查询显示)如果你想把'01/23/2003 12:00:00 上午'这样的格式完全放到datetime字段里,应该是不行。
但是我觉得你没有必要这样做吧,为什么非要存这种格式呢,你select时拿出你要的格式就ok了吧,也许你有特殊需求,呵呵