作业里面有个小题不会...很简单的

ljm19891118 2009-12-16 06:38:30
用sql语句设置
表A里面有列birthday
是datetime类型
问题:
创建规则绑定到birthday上面
用于检查该列存放数据是否形如2008-08-18的格式

会的指点下
确实不会写这个语句
...全文
98 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sych888 2009-12-17
  • 打赏
  • 举报
回复
CONVERT
guguda2008 2009-12-17
  • 打赏
  • 举报
回复
额。。。我傻了,DATETIME存数据的格式不是一样的吗?
幸运的意外 2009-12-17
  • 打赏
  • 举报
回复
如果是日期类型,本身就能检查是否是日期格式.
忆轩辕 2009-12-17
  • 打赏
  • 举报
回复
这个要用正则表达式了.......百度一下,我也忘了=.=
zhangwike 2009-12-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dawugui 的回复:]
如果是我,换在前台去做,用isdate去判断你输入的字符串是否是合法的日期数据.

SQL codeISDATE
确定输入表达式是否为有效的日期。

语法ISDATE ( expression )

参数
expression

一个表达式,将要验证它是否为一个日期。expression 是任何返回varchar 数据类型的表达式。

返回类型int

注释
如果输入表达式是有效的日期,那么ISDATE 返回1;否则,返回0。下表显示一组示例所得到的返回值。

列值 (varchar)ISDATE 返回值NULL0
Abc0100、-100、100 a 或100.000
.010-100.1234e-1230
.231e900
$100.12345、- $100.12345 或 $-1000.1230
as100 或 1a0001995-10-1、1/20/95、1995-10-112:00pm、Feb7199511:00pm、1995-10-1 或者1/23/95113/43/3425 或1995-10-1a0
$1000、$100 或 $100 a0


示例
A. 使用ISDATE 检查变量
下面的示例检查@datestring 局部变量是否为有效的日期。DECLARE@datestringvarchar(8)SET@datestring='12/21/98'SELECTISDATE(@datestring)

下面是结果集:-----------1

B. 使用ISDATE 检查列是否为有效的日期
下面的示例创建 test_dates 表,并且插入两个值。使用ISDATE 以确定列中的值是否为日期。USE tempdbCREATETABLE test_dates (Col_1varchar(15), Col_2datetime)GOINSERTINTO test_datesVALUES ('abc','July 13, 1998')GOSELECTISDATE(Col_1)AS Col_1,ISDATE(Col_2)AS Col_2FROM test_dates

下面是结果集:

Col_1 Col_2----------------- --------------------01
[/Quote]
收藏下
ljm19891118 2009-12-16
  • 打赏
  • 举报
回复
只是用于表里面
检查该列存放数据是否形如2008-08-18的格式
按照书上的例子
应该用到下面的语句..

CREATE rule 规则名
AS @字段



比如说
性别只能是男和女
用到的SQL语句就是

CREATE RULE sex_rule
AS @sex in('男','女')

上面就限定了字段sex只能是男和女



chenyu112 2009-12-16
  • 打赏
  • 举报
回复
没做过
帮顶
dawugui 2009-12-16
  • 打赏
  • 举报
回复
如果是我,换在前台去做,用isdate去判断你输入的字符串是否是合法的日期数据.

ISDATE
确定输入表达式是否为有效的日期。

语法
ISDATE ( expression )

参数
expression

一个表达式,将要验证它是否为一个日期。expression 是任何返回 varchar 数据类型的表达式。

返回类型
int

注释
如果输入表达式是有效的日期,那么 ISDATE 返回 1;否则,返回 0。下表显示一组示例所得到的返回值。

列值 (varchar) ISDATE 返回值
NULL 0
Abc 0
100、-100、100 a 或 100.00 0
.01 0
-100.1234e-123 0
.231e90 0
$100.12345、- $100.12345 或 $-1000.123 0
as100 或 1a00 0
1995-10-1、1/20/95、1995-10-1 12:00pm、Feb 7 1995 11:00pm、1995-10-1 或者 1/23/95 1
13/43/3425 或 1995-10-1a 0
$1000、$100 或 $100 a 0


示例
A. 使用 ISDATE 检查变量
下面的示例检查 @datestring 局部变量是否为有效的日期。

DECLARE @datestring varchar(8)
SET @datestring = '12/21/98'
SELECT ISDATE(@datestring)

下面是结果集:

-----------
1

B. 使用 ISDATE 检查列是否为有效的日期
下面的示例创建 test_dates 表,并且插入两个值。使用 ISDATE 以确定列中的值是否为日期。

USE tempdb
CREATE TABLE test_dates (Col_1 varchar(15), Col_2 datetime)
GO
INSERT INTO test_dates VALUES ('abc', 'July 13, 1998')
GO
SELECT ISDATE(Col_1) AS Col_1, ISDATE(Col_2) AS Col_2
FROM test_dates

下面是结果集:

Col_1 Col_2
----------------- --------------------
0 1

JiuchunYoung 2009-12-16
  • 打赏
  • 举报
回复
dateadd(a,b,int day)
dawugui 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 ljm19891118 的回复:]
用sql语句设置
表A里面有列birthday
是datetime类型
问题:
创建规则绑定到birthday上面
用于检查该列存放数据是否形如2008-08-18的格式

会的指点下
确实不会写这个语句
[/Quote]
这个不好做.帮顶.
ljm19891118 2009-12-16
  • 打赏
  • 举报
回复
我写的是这....
错的...

ALTER TABLE A
add CREATE rule riqi_rule
AS @birthday like '%-%-%'

34,588

社区成员

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

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