> > > 2008/7/23 Cristiano Panvel <[EMAIL PROTECTED]>: > > > Oi, o banco he MySQl versao 3.0, e nem posso pensar em atualizar > > > por enquanto... > > > > > > Tenho uma lista grande com esses valores em timestamp, eu tenho > > > que achar o intervalo dessas datas comecando ler pelo comeco do > > > arquivo, primeira linha he: > > > > > > 20070925145857.714132 > > > > > > Quando o intervalo da hora mudar de 145857 para 151100 eu paro de > > > ler e imprimo essas duas linhas em um algum lugar, porque irei > > > precisar desses valores depois, e continou lendo da linha que > > > parei ate o final he mais ou menos isso.Nao sei se tem essa opcao > > > no MySQL pelo na versao 3 eu nao achei > > > > > > 2008/7/22 Tiago Drumond <[EMAIL PROTECTED]>: > > > [EMAIL PROTECTED] -- Tue, 22 Jul 2008 14:43:50 -0300: > > > > "Cristiano Panvel" <[EMAIL PROTECTED]> -- Tue, Jul 22, 2008 1:03 PM: > > > > > > > > Oi pessoal, > > > > Tenho um arquivo no formato timestamp extraido do banco. Dessa > > > > forma: > > > > > > > > 20070925145857.714132 > > > > 20070925145859.714131 > > > > 20070925145900.714130 > > > > 20070925145902.714129 > > > > 20070925145904.714129 > > > > 20070925145906.714128 > > > > 20070925145907.714127 > > > > 20070925145909.714126 > > > > 20070925151100.714126 > > > > 20070925151110.788127 > > > > 20070925151200.725128 > > > >
Estou pegando carona aqui ... me corrijam se estiver errado ... Você precisa retirar as primeiras linhas de cada secao, ou seja, extraindo do exemplo acima: 20070925145857.714132 e 20070925151100.714126 Voce utiliza o Mysql 3.x certo? porque não utiliza o seguinte comando: SELECT left(campodotimestamp,14) from tabela limit 1 <- retorna a 1 ocorrencia PS.: segue seguencia de testes; mysql> create table a ( ts numeric (21,6)); Query OK, 0 rows affected (0.05 sec) mysql> create table b ( ts timestamp); Query OK, 0 rows affected (0.01 sec) mysql> insert into a values ( 20070925145857.714132),(20070925145859.714131),(20070925145900.714130),(20070925145902.714129),(20070925145904.714129),(20070925145906.714128),(20070925145907.714127),(20070925145909.714126),(20070925151100.714126),( 20070925151110.788127),( 20070925151200.725128); Query OK, 11 rows affected (0.00 sec) Records: 11 Duplicates: 0 Warnings: 0 mysql> insert into b values ( 20070925145857.714132),(20070925145859.714131),(20070925145900.714130),(20070925145902.714129),(20070925145904.714129),(20070925145906.714128),(20070925145907.714127),(20070925145909.714126),(20070925151100.714126),( 20070925151110.788127),( 20070925151200.725128); Query OK, 11 rows affected, 1 warning (0.01 sec) Records: 11 Duplicates: 0 Warnings: 1 mysql> select ts from a limit 1; +-----------------------+ | ts | +-----------------------+ | 20070925145857.714132 | +-----------------------+ 1 row in set (0.00 sec) mysql> select ts from b limit 1; +---------------------+ | ts | +---------------------+ | 2007-09-25 14:58:58 | +---------------------+ 1 row in set (0.01 sec) mysql> select -> left(ts,14) from a; +----------------+ | left(ts,14) | +----------------+ | 20070925145857 | | 20070925145859 | | 20070925145900 | | 20070925145902 | | 20070925145904 | | 20070925145906 | | 20070925145907 | | 20070925145909 | | 20070925151100 | | 20070925151110 | | 20070925151200 | +----------------+ 11 rows in set (0.04 sec) mysql> select left(ts,14) from b; +----------------+ | left(ts,14) | +----------------+ | 2007-09-25 14: | | 0000-00-00 00: | | 2007-09-25 14: | | 2007-09-25 14: | | 2007-09-25 14: | | 2007-09-25 14: | | 2007-09-25 14: | | 2007-09-25 14: | | 2007-09-25 15: | | 2007-09-25 15: | | 2007-09-25 15: | +----------------+ 11 rows in set (0.00 sec) testa ai .. se quiser usar mysql no shell pode criar um arquivo bat com o sql (as queries) e rodar do seguinte modo: mysql -u root < arquivo.sql mas o arquivo.sql pode ser: user database; select left(ts,14) from a; e em C-shell: #!/sbin/csh set inicio= `mysql -u root < arquivo.sql | awk '{ print $1 };' | tail -n 1` while (1) set p = @ inicio + xxxxxx echo "use database;" > novo.sql echo "select ts from tabela where ($p) = left(ts,14) limit 1;" >> novo.sql set inicio= `mysql -u root < arquivo.sql | awk '{ print $1 };' | tail -n 1` end veja se era isso. -- Nilton José Rizzo 805 Informatica Disseminando tecnologias 021 2413 9786 ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd