在Microsoft Visual Studio 2008专业版中使用最新的Visual Fox Pro OLE DB提供程序。我无法在* .dtq文件中使用SQL函数。我有超过181 * .dtq文件,我ultimatley需要从sqlscript调用,但我的问题在于尝试解析dbf文件中的列。我需要的列包含一个时间即。 HH:MM:SS我需要能够解析时间列以拉出小时或分钟。分钟将以15分钟的间隔进行分段,即每小时15分钟,只要时间>超过0但是< 15这样我就能以15分钟的间隔提取数据。通常我会使用像parse或parsname这样的函数,或者使用split或decimal或decim这样的函数来表示字符空间#然后是字符空格。就像在dos中我可以使用%TIME:~3,2%来获取包含我需要的时间信息的列的分钟部分所需的信息。请帮我。先谢谢你。
答案 0 :(得分:0)
虽然我不直接熟悉.dtq文件(除非它们只是重命名.dbf文件),但VFP具有日期/时间功能,可以为您获取日期字段的不同组件。但是,“TIME”组件没有数据类型。它通常只存储为字符串(字符)列。但是,如果列IS是日期/时间,则可以使用
HOUR( YourDateTimeColumn ) -- will return based on 24 hour clock... 1pm = 13, 2pm = 14, etc
MINUTE( YourDateTimeColumn )
但是,你的例子显示了HH:MM:SS,所以我将存储为一个字符串。所以我会得到它...
select
val( left( YourTimeColumn, 2 )) as MyHour,
val( substr( YourTimeColumn, 4, 2 )) as MyMinutes,
int( val( substr( YourTimeColumn, 4, 2 )) / 15 ) as QtrMinute
from
YourTable
稍微离开你的> 0和< 15并不代表真正的15分钟,但是14,
0 - 14 minutes = 1st quarter minute
15- 29 minutes = 2nd quarter minute
30- 44 minutes = 3rd quarter minute
45- 59 minutes = 4th quarter minute
如果你希望季度基于1-15分钟,16-30,31-45,46-60,那么改为 int(1 + val(...)作为QtrMinute