| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2616 人关注过本帖
标题:sql日期格式问题?#附近有语法错误
只看楼主 加入收藏
扬帆起航2
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2014-7-8
结帖率:0
收藏
 问题点数:0 回复次数:4 
sql日期格式问题?#附近有语法错误
代码如下:
A2 = Format(A1, "yyyy-mm-dd")
SQL = "select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where CONVERT(varchar(100),riq,23)=#" & A2 & "#"
    rs.CursorLocation = 3
     rs.Open SQL, conn, 1, 3

1、错误一:format不是可以识别的内置函数
select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where Format(riq,'yyyy/mm/dd')=#" & A2 & "#
百度得,access中format可以用,sql server不可以
2、错误二:#附近有语法错误
SQL = "select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where convert(varchar(10),riq,120)=#" & A2 & "#"
监视为:
select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where riq=#2014-06-01#
3、错误三:#附近有语法错误
发现,120不对,改为23
SQL = "select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where CONVERT(varchar(100),riq,23)=#" & A2 & "#"

抓狂,不就是CONVERT吗,前后的语句看着也没啥啊?

PS:不知道是VB还是sql板块合适,想尽快得到答案,崩溃中啊,所以两边都发了,不知道有问题不,版主见谅。

2016-09-20 22:43
梦幻倩影
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:162
专家分:352
注 册:2016-8-19
收藏
得分:0 
sql中可以直接日期=日期变量的
select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where riq='2016-09-20'
2016-09-22 09:30
梦幻倩影
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:162
专家分:352
注 册:2016-8-19
收藏
得分:0 
CONVERT() 函数只是实现返回 用不同的格式显示日期或时间


Style ID    Style 格式
100 或者 0    mon dd yyyy hh:miAM (或者 PM)
101    mm/dd/yy
102    yy.mm.dd
103    dd/mm/yy
104    dd.mm.yy
105    dd-mm-yy
106    dd mon yy
107    Mon dd, yy
108    hh:mm:ss
109 或者 9    mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110    mm-dd-yy
111    yy/mm/dd
112    yymmdd
113 或者 13    dd mon yyyy hh:mm:ss:mmm(24h)
114    hh:mi:ss:mmm(24h)
120 或者 20    yyyy-mm-dd hh:mi:ss(24h)
121 或者 21    yyyy-mm-dd hh:mi:ss.mmm(24h)
126    yyyy-mm-ddThh:mm:ss.mmm(没有空格)
130    dd mon yyyy hh:mi:ss:mmmAM
131    dd/mm/yy hh:mi:ss:mmmAM

我们将使用 GETDATE() 函数来获得当前的日期/时间:
CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
结果类似:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
2016-09-22 10:33
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用扬帆起航2在2016-9-20 22:43:03的发言:

代码如下:
A2 = Format(A1, "yyyy-mm-dd")
SQL = "select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where CONVERT(varchar(100),riq,23)=#" & A2 & "#"
    rs.CursorLocation = 3
     rs.Open SQL, conn, 1, 3

1、错误一:format不是可以识别的内置函数
select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where Format(riq,'yyyy/mm/dd')=#" & A2 & "#
百度得,access中format可以用,sql server不可以
2、错误二:#附近有语法错误
SQL = "select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where convert(varchar(10),riq,120)=#" & A2 & "#"
监视为:
select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where riq=#2014-06-01#
3、错误三:#附近有语法错误
发现,120不对,改为23
SQL = "select M1,M2,M3,M4,M5,M6,M7,M8 FROM AA02 where CONVERT(varchar(100),riq,23)=#" & A2 & "#"

抓狂,不就是CONVERT吗,前后的语句看着也没啥啊?

PS:不知道是VB还是sql板块合适,想尽快得到答案,崩溃中啊,所以两边都发了,不知道有问题不,版主见谅。

SQL 好像不能用 # ,要用<> ,估计是因为 在sql2000版本中,#表A,是表示 表A 是临时表的意思
2016-09-22 12:29
梦幻倩影
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:162
专家分:352
注 册:2016-8-19
收藏
得分:0 
CONVERT(varchar(100),riq,23) 输出的日期是 字符串格式,所以等号右边也应该是字串,可以用单引号,但不能用#
2016-09-22 13:47
快速回复:sql日期格式问题?#附近有语法错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016581 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved