I’m trying to deploy custom objects, custom fields, page layouts, compact layouts, Lightning pages and Global value set (global picklist) , when uploading changeset it is giving me API version error as out production platform version 46.0 and SB version is 47.0 , I’m not sure how to bring the version down to 46.0 (There are no Apex triggers/classes in the changeset). Any help would be really appreciated.
Looks like your sandbox is updated to the next release.The decision whether your org stays on winter 20 or previous release was documented and released.You can read here
The above chart will be helpful .You will need to know your sandbox instance and take action appropriately before you further build into the org .
Now what that you have built things in the org which is on 47.0 version?
There is simple alternative you can take
2)Change the package.xml version to 46.0 and deploy using the IDE.
I have just downloaded a changeset in which I have this problem. Now I downloaded it with a Chrome extension, and the package xml in the downloaded zip shows v43. As I do not know how the extension works, I do not know whether the download is a perfect representation of a changeset.
Trying to deploy the zip file, (through sfdx mdapi), I do get an error for my Opportunity Page layout, it contains the Opportunity Contact Role related list, which is not customisable in earlier releases, but with release winter'20/api47, the OpportunityContactRole object has been updated.
Now there might be other changes, and the error provided by SF is not providing this info. So only way to find out what is the issue for you, is to (test) deploy smaller changesets, until you have found the culprit.