设置日期或时间值的格式以在 Visual FoxPro 中查询 SQL 表

本文介绍如何在 Visual FoxPro 中使用远程视图或 SQL 直通查询从 SQL Server 表查询日期或时间值。

原始产品版本: Visual FoxPro
原始 KB 数: 145817

简介

在 Visual FoxPro 中,可以将日期类型输入数据的格式设置为 {mm/dd/yy}。 或者,如果直接在日期字段中键入,则可以将日期类型输入数据的格式格式化为 mm/dd/y。 但是,如果在对 SQL 表执行远程查询时将数据格式化为 {mm/dd/yy} 或 mm/dd/y,则会出现 ODBC 错误。

详细信息

如果将远程查询中的日期值、时间值或 timestamp 值传递给 SQL 表,则必须使用以下转义子句设置数据的格式:

  • 日期值: {d 'yyyy - mm - dd'}。 在此格式中, yyyy 表示年份、 mm 表示月份, dd 表示日期。

  • 时间值: {t 'hhmmss'}。 在此格式中, hh 表示小时、 mm 表示分钟数, ss 表示秒。

  • 时间戳值: {ts 'yy - mm - ddhhmmss'}。

在 SQL 传递查询中,可以使用以下语法检索日期字段的值:

 =SQLEXEC( nConnHandle, "SELECT * FROM TITLES WHERE
 Titles.pubdate<{ts '1995-06-12 12:55:00'}", 'MyCursor')

可以使用以下语法创建查询日期和时间信息的远程视图:

 CREATE SQL VIEW sqldate REMOTE CONNECTION sqldate AS SELECT * FROM ;
 dbo.titles WHERE Titles.pubdate<{ts '1985-06-12 12:55:00'}

在视图设计器中,确保日期值、时间值或时间戳值的格式设置为在“选择条件”选项卡的“示例”字段中所需的方式。保存视图时,“示例”字段中的信息与视图一起保存。 如果打开并修改视图,“示例”字段中的信息将丢失。 如果执行此操作,则必须再次键入信息。

注意

在远程查询中将字段名称作为参数传递而不是传递值时,不会遇到 ODBC 错误,因为 Visual FoxPro 执行转换。

参考

ODBC 2.0 程序员参考和 SDK 指南,pp.50-52,Microsoft出版社。