my query(select invoice_date from pr_tax_intra where invoice_date between '03-05-2018' and '05-05-2018')
invoice_date数据类型varchar->(invoice_date varchar(55))
输出图片:
enter image description here
enter image description here此图片仅选择5个月的数据,但同时显示4个月和5个月的数据......
我正在使用mysql数据库
我已将日期存储为varchar(255)数据类型,日期格式为dd / MM / yyyy现在我必须将其转换为日期数据类型,您可以帮我查询吗?
我有780条记录,每条记录包含dd / MM / YYYY格式的日期,但由于varchar数据类型,我无法在日期执行计算,因此我必须转换为日期而不会丢失数据。
请帮帮我
答案 0 :(得分:1)
您可以使用myqsl STR_TO_DATE()函数
SELECT STR_TO_DATE("10 August 2017", "%d %M %Y")
答案 1 :(得分:0)
//用于测试
SELECT DATE_FORMAT(STR_TO_DATE('21/05/2018', '%Y/%m/%d')
,'%d/%m/%Y')
在您的情况下使用以下查询
SELECT DATE_FORMAT(STR_TO_DATE(YourVarcharDateColumn, '%Y/%m/%d')
,'%d/%m/%Y') from YourTable
答案 2 :(得分:0)
你可以这样做, 获取所有记录,然后应用while循环
$ListContent = mysqli_query($conn, "SELECT `date_filed` FROM table_name") or die(mysqli_error($conn)." Error in query"); // $conn is connection object
while($arr = mysqli_fetch_array($ListContent)){
$currentDate = $arr['date_filed'];
$currentRowID = $arr['id']; // Unique id column name
$newDate = date("Y-m-d", strtotime($currentDate));
$sqlUpdate = "Update table_name SET `date_filed` ='".$newDate."' WHERE id=".$currentRowID;
mysqli_query($conn, $sqlUpdate) or die(mysqli_error($conn)." Error in update query");
}
这将使您的所有记录在" yyyy-mm-dd"格式然后将您的字段更改为日期类型
答案 3 :(得分:-1)
SQL Server(MSSQL)
SELECT FORMAT(YourDateColumn,'dd-MM-yyyy') from yourTable