<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mike &#38; Etc &#187; MySQL</title>
	<atom:link href="http://www.mike.etc.br/categoria/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mike.etc.br</link>
	<description>Entre funções e variáveis, alguns procedimentos básicos de alguém que leva a vida entre as linhas de código.</description>
	<lastBuildDate>Thu, 06 Oct 2011 12:24:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Resolvendo os problemas com datas no PHP + MySQL</title>
		<link>http://www.mike.etc.br/php/resolvendo-os-problemas-com-datas-no-php-mysql/</link>
		<comments>http://www.mike.etc.br/php/resolvendo-os-problemas-com-datas-no-php-mysql/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 02:52:21 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[datas]]></category>

		<guid isPermaLink="false">http://www.mike.etc.br/?p=143</guid>
		<description><![CDATA[Muitos iniciantes, e até mesmo alguns programadores experientes tem algum problema quanto o assunto é o armazenamento de datas em banco de dados MySQL, utilizando o PHP. Isso porque o MySQL armazena os dados no campo classificado com Date de uma maneira não muito condizente com aquilo que estamos acostumados. Vamos pegar como exemplo o [...]]]></description>
			<content:encoded><![CDATA[<p>Muitos iniciantes, e até mesmo alguns programadores experientes tem algum problema quanto o assunto é o armazenamento de datas em banco de dados MySQL, utilizando o PHP. Isso porque o MySQL armazena os dados no campo classificado com Date de uma maneira não muito condizente com aquilo que estamos acostumados. Vamos pegar como exemplo o dia 06 de Novembro de 2009 (aniversário da Isabella! Te amo, minha princesa!). Nós podemos facilmente abreviá-la para o formato 06/10/2009.</p>
<p>Imagine um formulário onde essa data é informada nesse formato. Ao ser feio o INSERT no MySQL o resultado, ela seria armazenada como um valor nulo, ou na melhor das hipóteses em algo totalmente diferente daquilo que você pretendia. Enquanto nós costumamos utilizar datas abreviadas usando o formato DIA/MÊS/ANO, o MySQL o faz utilizando o formato ANO-MES-DIA. Qualquer coisa que venha fora desses padrões, será completamente ignorado pelo MySQL.</p>
<p>Já vi alguns tentando contornar esse problema tratando a data no PHP antes de enviá-la para ser salva no MySQL. Esse tratamento consiste basicamente em inverter as posições dos algarismos e trocar as barras por hífens. Algo mais ou menos assim:</p>
<pre class="brush:php">&lt;?php

$data="17/08/2009";
$arr=explode('/',$data);
$data=$arr[2].'-'.$arr[1].'-'.$arr[0];

?&gt;</pre>
<p>O exemplo acima até que funciona, apesar do POG&#8230; Outra variação desse método é a utilização de Regex ou até mesmo as funções de tratamento de strings que o PHP fornece.</p>
<p>Eu, pessoalmente, sou adepto do que costumo chamar de &#8220;trabalho preguiçoso&#8221;. Não entenda &#8220;preguiçoso&#8221; como algo mal feito, ou feito com má vontade; mas sim como a busca de uma solução mais rápida, clara e objetiva, e que consuma o menor tempo possível. <img src='http://www.mike.etc.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Então porque você não deixa o MySQL fazer esse trabalho pra você? Em vez de você quebrar a cabeça com a criação de códigos, funções, classes e loops, porque não utilizar as funções de tratamento de Data do MySQL?</p>
<p>Basta fazer o seguinte:</p>
<pre class="brush:sql">INSERT INTO nomedatabela (seucampodate) VALUES (STR_TO_DATE('06/11/2009', '%d/%m/%Y'));</pre>
<p>Note o uso da função STR_TO_DATE(). Ela exige basicamente dois parâmetros:</p>
<p>- O primeiro é a string contendo a data, seja em qual formato for.</p>
<p>- O segundo parâmetro é o segredo para a mágica da coisa. Ele recebe a máscara que o MySQL deve utilizar para interpretar a data. Nesse caso, %d significa o dia (dois dígitos), %m o mês (dois dígitos) e %Y o ano (com quatro dígitos).</p>
<p>A conversão da data abreviada como estamos acostumados, para o formato do MySQL será feita automaticamente.</p>
<p>Confira também outras funções para o tratamento de datas no MySQL acessando a documentação do MySQL, <a href="http://dev.mysql.com/doc/refman/4.1/pt/date-and-time-functions.html" target="_blank">clicando aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mike.etc.br/php/resolvendo-os-problemas-com-datas-no-php-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

