A função Convert obtém a data de SQL Server campo DateTime com uma consulta Visual FoxPro
Este artigo descreve como usar a função SQL Server CONVERT()
para extrair a parte de data de um campo SQL DateTime com uma consulta Visual FoxPro.
Versão original do produto: Visual FoxPro
Número de KB original: 308133
Resumo
As datas armazenadas em uma tabela SQL Server são armazenadas como um tipo de dados DateTime. Você pode usar a função SQL Server CONVERT()
para extrair a parte de data de um campo SQL DateTime com uma consulta Visual FoxPro; por exemplo:
SELECT CONVERT(CHAR(10), <field name>, 101) FROM <table name>
Você ainda pode fornecer apenas a data ao especificar uma condição de filtro na consulta. O tempo não é necessário na expressão. Por exemplo:
SELECT CONVERT(CHAR(10), <field name>, 101) FROM <table name> ;
WHERE <field name> = '01-01-1999'
Os primeiros e terceiro parâmetros na chamada de função acima (CHAR(10) e 101) são específicos para extrair Data do DateTime. O tópico SQL Server Books Online para a função CONVERT descreve outras opções disponíveis.
Mais informações
O código de exemplo do Visual FoxPro a seguir se conecta a SQL Server e recupera dados. O código usa a função SQL CONVERT()
para extrair a parte de data do campo DateTime 'ORD_DATE'. O tipo de dados retornado pelo comando CONVERT é CHARACTER no Visual FoxPro.
Para usar este exemplo, siga estas etapas:
Cole o seguinte código em um novo programa dentro do Visual FoxPro:
*!* Enter your specific SQL Server information here. #DEFINE SQL_NAME " " #DEFINE SQL_UID " " #DEFINE SQL_PWD " "*~~~~~~~~~~~ LOCAL lcSQLConnStr, ; lnSQLConnHandle, ; lnSQLExecSuccess lcSQLConnStr = "DRIVER={SQL Server};SERVER=" + SQL_NAME + ; ";DATABASE=PUBS;UID=" + SQL_UID + ";PWD=" + SQL_PWD lnSQLConnHandle = SQLSTRINGCONNECT(lcSQLConnStr) IF lnSQLConnHandle < 1 LOCAL laErrArray[1] AERROR(laErrArray) WAIT WINDOW "Unable to connect:" + CHR(13) + laErrArray[3] RETURN .F. ENDIF lnSQLExecSuccess = SQLEXEC(lnSQLConnHandle, "SELECT stor_id, ord_num, ; CONVERT(CHAR(10), ord_date, 101) AS ord_date, qty, ; payterms, title_id from sales", "RESULTS") *!* Note that you can still use just a date value if using a WHERE clause *!* to filter the data: *!* lnSQLExecSuccess = SQLEXEC(lnSQLConnHandle, "SELECT stor_id, ord_num, ; *!* CONVERT(CHAR(10), ord_date, 101) AS ord_date, qty, payterms, ; *!* title_id from sales WHERE ord_date < '10/28/1993'", "RESULTS") IF lnSQLExecSuccess < 1 LOCAL laErrArray[1] AERROR(laErrArray) WAIT WINDOW "SQLEXEC() Failed:" + CHR(13) + laErrArray[3] ENDIF SQLDISCONNECT(lnSQLConnHandle) IF SELECT("RESULTS") > 0 SELECT RESULTS BROWSE NOWAIT ENDIF
Insira seu SQL Server nome, ID do usuário e senha na parte superior do código em que indicado.
Salve e execute o código.
Referências
Para obter mais informações sobre a função SQLConvert
, consulte SQL Server Livros Online.