开发者

Converting string to MySQL timestamp format in php

开发者 https://www.devze.com 2023-03-29 06:35 出处:网络
I am writing a query in php using a string sent from a android java application. The query is something like :

I am writing a query in php using a string sent from a android java application.

The query is something like :

$insertSQL = sprintf("INSERT INTO app开发者_运维知识库_DuckTag (taste) VALUES (%s) WHERE species=%s AND timestamp=%s",
                         GetSQLValueString($_POST['taste'], "text"),
                         GetSQLValueString($_POST['species'], "text"),
                         GetSQLValueString($_POST['timestamp'], "text"));

But I doubt timestamp is stored as a string inside MySQL.

How should I convert the string to time format as in MySQL?

The strtotime(string) php function converts it to unix time.

But the MySQL stores it differently, I guess. Thank you.

EDIT: This is how it shows up in MySQL phpmyadmin: 2011-08-16 17:10:45

EDIT: My query is wrong though. Cannon use a where clause with Insert into.

The query has to be UPDATE .... SET ... = ... WHERE ....

But the accepted answer is the correct way to use the time inside the WHERE clause.


This should be all:

date("Y-m-d H:i:s", strtotime($_POST['timestamp']));

if you want to check for timezones and such you should use strftime instead of date


If you can get the input 'string' (which you haven't provided the format that you're receiving it in) to a Unix timestamp value, you can easily convert it to a MySQL datetime format like this:

$mysqldatetime = date("Y-m-d H:i:s", $unixTimeStampValue);

This will produce a string similar to the following:

2011-08-18 16:31:32

Which is the format of the MySQL datetime format. If you are using a different time format, then the first argument to the date function will be different.

See the manual for the date function for more information and other ways you can format the value that it returns.

Edit

You are receiving a string formatted in MySQL datetime format. After sanitizing it, you can insert it directly into the database. To MySQL it may be a 'datetime' data type, but to PHP it is simply a string (just like your entire SQL query is nothing more than a string to PHP).

$timestamp = mysql_real_escape_string($_POST['timestamp']);

You should be able to safely insert that into your database for the timestamp field.


There is a function FROM_UNIXTIME in mysql. Why don't you want to use it?

0

精彩评论

暂无评论...
验证码 换一张
取 消