关于ASP中字符串截取的问题

simon_sx 2005-11-08 03:13:11
日期写入数据库的格式为2005-05-19

我想读出从上个月26号到本月25日为一月的数据

2005-05-19为字符串类型,因为在读数据的时候存在一个比较的问题

即大于等于26日与小于等于25日

如果该月为1月份的话,就需要从上一年的12月26日开始算起,到本年1月25日为一月

我不太清楚具体该如何截取,截取后该如何比较

请给予帮忙

如果您有做过类似的东西,希望能贴出来共享下

Thanks!
...全文
397 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
是是非非 2005-11-09
  • 打赏
  • 举报
回复
刚才的语句有点问题,少了一个括号

SELECT * FROM
[表名]
WHERE DATEDIFF(m,CAST([字段名] AS DATETIME),'2005-11-25')=1
是是非非 2005-11-09
  • 打赏
  • 举报
回复
这本来就不是一个字符串比较的问题

可能是原来的数据库设计有问题

为什么要把日期时间保存为字符串呢?
是是非非 2005-11-09
  • 打赏
  • 举报
回复
用CAST把数据中的2005-05-19这样的字符串转换成DateTime
然后用DateDiff比较日期

SELECT * FROM
[表名]
WHERE DATEDIFF(m,CAST([字段名] AS DATETIME,'2005-11-25')=1
simon_sx 2005-11-09
  • 打赏
  • 举报
回复
重点是在:字符串的截取和截取后如何拿截到的字符比较问题
simon_sx 2005-11-09
  • 打赏
  • 举报
回复
问题还是没能解决,是否是我没表述清楚?
simon_sx 2005-11-09
  • 打赏
  • 举报
回复
Over!
simon_sx 2005-11-09
  • 打赏
  • 举报
回复
Over!
yclin2005 2005-11-08
  • 打赏
  • 举报
回复
dateadd函数
select * from tablename where datefield>=dateadd(d,-30,'2005-05-19') and datefield<='2005-05-19'
beiouwolf 2005-11-08
  • 打赏
  • 举报
回复
用datediff函数

DateDiff 函数


描述
返回两个日期之间的时间间隔。
语法
DateDiff(interval, date1, date2 [,firstdayofweek][, firstweekofyear]])
DateDiff 函数的语法有以下参数:

参数 描述
interval 必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
date1, date2 必选。日期表达式。用于计算的两个日期。
firstdayofweek 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。


设置
interval 参数可以有以下值:
设置 描述
yyyy 年
q 季度
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 小时
m 分钟
s 秒


firstdayofweek 参数可以有以下值:

常数 值 描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六


firstweekofyear 参数可以有以下值:

常数 值 描述
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。


说明
DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。
要计算 date1 和 date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1 和 date2 之间星期日的数目。如果 date2 是星期日,DateDiff 将计算 date2,但即使 date1 是星期日,也不会计算 date1。

如果 date1 晚于 date2,则 DateDiff 函数返回负数。

firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。

如果 date1 或 date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1 或 date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。

在 interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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