sql server中datetime的格式问题

5I5Q 2004-08-08 09:39:36
'01/23/2003 12:00:00 上午', 'MM/DD/YYYY HH:MI:SS AM'

datetime类型的字段能不能存放以上格式的时间,如果不行,还有没有其他的(当然除了varchar类型)。
...全文
437 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
5I5Q 2004-08-09
  • 打赏
  • 举报
回复
我也不知道是什么要求,这是帮别人作的一个用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,如果这样不是更好了吗。(注:那个函数要实现的功能我也不清楚,是我自己杜撰出来的,没办法找不到人啦)
zhangzs8896 2004-08-09
  • 打赏
  • 举报
回复
如果你要存到数据库里这种格式,只能是字符型了。
但是我觉得你没有必要这样做吧,为什么非要存这种格式呢,你select时拿出你要的格式就ok了吧,也许你有特殊需求,呵呵

5I5Q 2004-08-09
  • 打赏
  • 举报
回复
也就是说datetime类型的字段没有这种时间格式

那,我只能将字段格式设置诚varchar了,这样就没问题

谢谢你的回复
zhangzs8896 2004-08-09
  • 打赏
  • 举报
回复
你要知道,在sql中,datetime存储的格式
select 当前时间=getdate()

--结果
当前时间
------------------------------------------------------
2004-08-09 08:04:29.390

我觉得你可以写个函数,专门用来将格式换为你所要的格式(查询显示)

如果你想把'01/23/2003 12:00:00 上午'这样的格式完全放到datetime字段里,应该是不行。
venket 2004-08-09
  • 打赏
  • 举报
回复
select convert(varchar,getdate(),9)
5I5Q 2004-08-08
  • 打赏
  • 举报
回复
你可能没有明白我的意思,我在看程序的时候,看到to_date这个函数,在sql中找不到,所以就在自定义函数中自己写了一个,是想把那个已知的时间01/23/2003 12:00:00 上午insert到数据库中的字段类型为datetime的字段中,能否实现?
5I5Q 2004-08-08
  • 打赏
  • 举报
回复
to 小二:我在看程序的时候,看到这么一个函数,TO_Date( '01/23/2003 12:00:00 上午', 'MM/DD/YYYY HH:MI:SS AM'),sql server中应该没有的,是个自定义函数,你见过吗,能猜出它大概是作什么用的吗?
zhangzs8896 2004-08-08
  • 打赏
  • 举报
回复
你要的那种格式没有现成的,只能转换,当然你存到数据库的是datetime,smalldatetime
查询的时候转换成字符串就可以了。

把我写的在查询分析器里运行一下就看到效果了
5I5Q 2004-08-08
  • 打赏
  • 举报
回复
怎么都不回复啦?
zhangzs8896 2004-08-08
  • 打赏
  • 举报
回复
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 PM

2:
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 下午

5I5Q 2004-08-08
  • 打赏
  • 举报
回复
从字符串转换到datetime的时候报错
5I5Q 2004-08-08
  • 打赏
  • 举报
回复
这个结果可以存放在datetime类型的字段里面吗?
Andy__Huang 2004-08-08
  • 打赏
  • 举报
回复
來了
No.1
zhangzs8896 2004-08-08
  • 打赏
  • 举报
回复
select convert(varchar,getdate(),109)
--结果
08 8 2004 9:56:04:437PM
5I5Q 2004-08-08
  • 打赏
  • 举报
回复
还没有人救命啊
5I5Q 2004-08-08
  • 打赏
  • 举报
回复
照顾照顾新人吧,我就还剩下160分啊
5I5Q 2004-08-08
  • 打赏
  • 举报
回复
怎么啦,我的帖子不醒目啊,还是给的分太少呢?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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