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:

  1. 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
    
  2. Insira seu SQL Server nome, ID do usuário e senha na parte superior do código em que indicado.

  3. Salve e execute o código.

Referências

Para obter mais informações sobre a função SQLConvert, consulte SQL Server Livros Online.