加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

关于SqlServer中的日期存放格式

发布时间:2020-12-12 15:58:03 所属栏目:MsSql教程 来源:网络整理
导读:为了方便测试,我们用sqlserver2000中的用例数据库来做为测试数据 首先执行 use ?pubs go select ?pubdate? from ?titles ?出来的结果很明显,是一列日期组成的数据,大部份是1991年开头的,那我就想了,把所有1991年开头的都查出 来,也就是滤掉其它年份,那
- 0 或 100 (*) 默认值 mon dd yyyy hh:miAM(或 PM) 1 101 美国 mm/dd/yyyy 2 102 ANSI yy.mm.dd 3 103 英国/法国 dd/mm/yy 4 104 德国 dd.mm.yy 5 105 意大利 dd-mm-yy 6 106 - dd mon yy 7 107 - mon dd,yy 8 108 - hh:mm:ss - 9 或 109 (*) 默认值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM) 10 110 美国 mm-dd-yy 11 111 日本 yy/mm/dd 12 112 ISO yymmdd - 13 或 113 (*) 欧洲默认值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h) 14 114 - hh:mi:ss:mmm(24h) - 20 或 120 (*) ODBC 规范 yyyy-mm-dd hh:mm:ss[.fff] - 21 或 121 (*) ODBC 规范(带毫秒) yyyy-mm-dd hh:mm:ss[.fff] - 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss:mmm(不含空格) - 130* 科威特 dd mon yyyy hh:mi:ss:mmmAM - 131* 科威特 dd/mm/yy hh:mi:ss:mmmAM

注意到这行了吗?

1 101 美国 mm/dd/yyyy

mm/dd/yy

再执行以下语句

select?pubdate?from?titles?where?pubdate?like?'%1991%'

结果不出所料,原来在SqlServer中,日期查出来虽然是以yyyy/mm/dd显示,但是实际数据是以mm/dd/yyyy存放,

所以用like '1991%自然就查不到数据',为了进一步验证,执行以下语句

select?pubdate?from?titles?where?pubdate?like?'06%'

6月份所有的日期都查出来了!!这下问题就很清析了!!

以上这些语句是很基础的,但是当时开发的时候被这个问题花了30分钟,心有不甘所以怎么样也要写下来,希望同

时能帮助一些和我一样的小菜鸟!!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

为了方便测试,我们用sqlserver2000中的用例数据库来做为测试数据

首先执行

use ?pubs

go

select ?pubdate? from ?titles

?出来的结果很明显,是一列日期组成的数据,大部份是1991年开头的,那我就想了,把所有1991年开头的都查出

来,也就是滤掉其它年份,那么我会执行下面语句

select ?pubdate? from ?titles? where ?pubdate? like ? ' 1991% '

心想,这么简单的语句应该不会出什么问题,可结果出来了,竟鬼使神差地什么数据都没查出来,分析原因

(1)难道现在头晕,语句写错了! 鬼话,语句写语了分析能成功吗?推翻之!

(2)难道对像列搞错了,检查了N编,没错哦~!

(3)难道是微软惊天大Bug,微软出这样的Bug的话早就挂掉了!推翻之!

跟朋友讨论了一个,他给了我这个表,一看,豁然开朗。

不带世纪数位 (yy) 带世纪数位 (yyyy)
标准

输入/输出**
    推荐文章
      热点阅读